JSON
The JSON object is new to ES5. It's not a constructor (similarly to Math) and has only two methods: parse() and stringify(). For ES3 browsers that don't support JSON natively, you can use the "shim" from http://json.org.
JSON stands for JavaScript Object Notation. It's a lightweight data interchange format. It's a subset of JavaScript that only supports primitives, object literals, and array literals.
Members of the JSON object
Following are the members of the JSON object:
|
Method |
Description |
|
|
Takes a JSON-encoded string and returns an object: > var data = '{"hello": 1, "hi": [1, 2, 3]}';
> var o = JSON.parse(data);
> o.hello;
1
> o.hi;
[1, 2, 3]
The optional callback lets you provide your own function that can inspect and modify the result. The callback takes
> function callback(key, value) {
console.log(key, value);
if (key === 'hello') {
return 'bonjour';
}
if (key === 'hi') {
return undefined;
}
return value;
}
> var o = JSON.parse(data, callback);
hello 1
0 1
1 2
2 3
hi [1, 2, 3]
Object {hello: "bonjour"}
> o.hello;
"bonjour"
> 'hi' in o;
false
|
|
|
Takes any value (most commonly an object or an array) and encodes it to a JSON string. > var o = {
hello: 1,
hi: 2,
when: new Date(2015, 0, 1)
};
> JSON.stringify(o);
"{"hello":1,"hi":2,"when":
"2015-01-01T08:00:00.000Z"}"
The second parameter lets you provide a callback (or a whitelist array) to customize the return value. The whitelist contains the keys you're interested in:
JSON.stringify(o, ['hello', 'hi']);
"{"hello":1,"hi":2}"
The last parameter helps you get a human-readable version. You specify the number of spaces as a string or a number:
> JSON.stringify(o, null, 4);
"{
"hello": 1,
"hi": 2,
"when": "2015-01-01T08:00:00.000Z"
}"
|