首页 > 代码库 > JavaScript Patterns 3.5 JSON
JavaScript Patterns 3.5 JSON
JSON: JavaScript Object Notation
{"name": "value", "some": [1, 2, 3]}
The only syntax difference between JSON and the object literal is that property names need to be wrapped in quotes to be valid JSON. In object literals the quotes are required only when the property names are not valid identifiers, for example, they have spaces {"first name": "Dave"}.
In JSON strings you cannot use functions or regular expression literals.
Working with JSON
JSON.parse()
use the JSON.parse()method, which is part of the language since ES5 and is natively provided by the JavaScript engines in modern browsers.
For older JavaScript engines, you can use the JSON.org library (http://www.json.org/json2.js) to gain access to the JSON object and its methods.
// an input JSON string var jstr = ‘{"mykey": "my value"}‘; // antipattern var data = http://www.mamicode.com/eval(‘(‘ + jstr + ‘)‘); // preferred var data =http://www.mamicode.com/ JSON.parse(jstr); console.log(data.mykey); // "my value"
using YUI3
// an input JSON string var jstr = ‘{"mykey": "my value"}‘; // parse the string and turn it into an object // using a YUI instance YUI().use(‘json-parse‘, function (Y) { var data =http://www.mamicode.com/ Y.JSON.parse(jstr); console.log(data.mykey); // "my value" });
using JQuery
// an input JSON string var jstr = ‘{"mykey": "my value"}‘; var data =http://www.mamicode.com/ jQuery.parseJSON(jstr); console.log(data.mykey); // "my value"
JSON.stringify()
var dog = { name: "Fido", dob: new Date(), legs: [1, 2, 3, 4] }; var jsonstr = JSON.stringify(dog); // jsonstr is now: // {"name":"Fido","dob":"2010-04-11T22:36:22.436Z","legs":[1,2,3,4]}