1.什么是JSON
JSON( javascript Object Notation )是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
JSON采用key/value的形式来表示数据,其中使用“{}”表示对象,而“[]”则表示数组,详细的语法可以参考json.org。
JSON对象:{"name":"LiLei","age":19,"sex":"male"} JSON数组:[ {"name":"LiLei","age":19,"sex":"male"}, {"name":"HanMei","age":18,"sex":"famale"} ]
2、原生JSON对象
目前支持原生JSON对象的浏览器包括:IE8、Firefox3.5以及Chrome3.0/4.0。原生的JSON对象是一个只包括parse方法与stringify方法的纯粹的对象,用于解析和构建JSON文本。
2.1、 JSON.parse()
parse() 方法是将一个符合JSON语法的字符串解析成一个JavaScript对象
// 简单JSON 对象 var str = '{"name":"LiLei","age":19,"sex":"male"}'; var obj = JSON.parse(str); console.log(obj); // Object {name: "LiLei", age: 19, sex: "male"} // JSON 数组 var str = '[{"name":"LiLei","age":19,"sex":"male"},{"name":"Lucy","age":17,"sex":"female"}]'; var obj = JSON.parse(str); alert(obj[0]);//Object {name: "LiLei", age: 19, sex: "male"} alert(obj[1]);//Object {name: "Lucy", age: 17, sex: "female"}
注意:使用JSON.parse的时候,对象的每个属性都必须用双引号括起来,否则会抛出异常;
var str = '{company:"kedacom"}'; var json = JSON.parse(str); //解析出现异常 var str2 = "{'company':'kedacom'}"; var json2 = JSON.parse(str2); //解析出现异常
2.2、JSON.stringify 将一个JavaScript对象序列化成JSON结构的字符串
var str = {name: "Lucy", age: 17, sex: "female"} objstr = JSON.stringify(str); console.log(objstr) // {"name":"Lucy","age":17,"sex":"female"}
3、原生JSON的的浏览器兼容
目前支持原生JSON对象的浏览器包括:IE8(S)、Firefox3.5以及Chrome3.0/4.0,对于更低版本的浏览器支持在网络上又很多的解决方案,目前使用最为广泛和成熟的解决方案是在项目中引入json.js库,该扩展库是由大师Douglas Crockford扩展实现(有兴趣的童靴可以读下源码),在最近的一次更新中可以看到如下建议,json.js文件应该使用被最新的json2.js替换。
在https://github.com/douglascrockford/JSON-js可以下载到json.js和json2.js两个文件。