<< Chapter < Page | Chapter >> Page > |
There are different ways to transform a JSON string into a JavaScript object, at least one of which has security problems. (The eval function is said to have security problems.)
The JSON.parse method
The recommended way to transform a JSON string into a JavaScript object is to call the JSON.parse method passing the JSON string as a parameter.
The JSON.parse method is apparently supported by most if not all modern browsers.
The JSON.parse method returns the JavaScript object that corresponds to the JSON string. I will use this method in the JavaScript scripts that I will explain later.
The JSON.stringify method
On the flip side of the coin, if you need to disassemble that JavaScript playscape object into a well-organized package of parts, you can do that by calling the JSON.stringify method passing the JavaScript object as a parameter. The JSON.stringify method returns the JSON string that represents the object, and amazingly does that even for very complex JavaScriptobjects.
However, the simple form of the JSON.stringify method that I will use in this module does not preserve methods that may reside in the JavaScript object.
With that as an introduction, let's look at some code.
I will explain the three scripts using fragments of code. The first script that I will explain is shown in its entirety in Listing 16 . If you open the file named Json0130a.htm in Firefox v26 or a later version, the text shown in Figure 1 should be displayed in the browser window.
Figure 1 . Screen output from Json0130a.htm. |
---|
Create a JavaScript object.
Unsuccessful attempt to display object.[object Object]
Display keys in object: name age methodDisplay values in object: Bill, 31, true
Transform JavaScript object into a JSON string.Display JSON string {"name":"Bill","age":31}
Unsuccessful attempt to access name and age.undefined, undefined
Transform the JSON string into a JavaScript object.Display values in object: Bill, 31
Display keys in object: name age |
(Note that I manually inserted some blank lines in Figure 1 to make it easier on the eyes.)
I will refer back to the contents of Figure 1 as I explain the code fragments.
Define a JavaScript function
Listing 1 shows the beginning of the script and also shows the definition of a simple JavaScript function that will be included as part of a JavaScript object. You will see shortly, however, that even thoughthis function is part of the object, it is discarded when the object is transformed into a JSON string using the simple version of the JSON.stringify method. (More complicated versions of the JSON.stringify method are available in some browsers.)
Listing 1 . Define a JavaScript function. |
---|
<body><script>//Define a function
function aMethod(){return true;}; |
There is nothing new or exciting about the code in Listing 1 . This is "plain vanilla" JavaScript programming.
Create a JavaScript object
The code in Listing 2 creates a new JavaScript object containing two properties ( name and age) and a method using object literal notation .
Notification Switch
Would you like to follow the 'Introduction to xml' conversation and receive update notifications?