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" }"
|