json对象
关于JSON的认识
关于JSON,最重要的是要理解它是一种数据格式,不同语言直接数据交互的桥梁
JSON可以表示储存那些数据类型
1、简单值
ECMAScript中有5中基本数据类型--Undefined、Null、Boolean、Number和String
JSON支持除了undefined之外的其它4中数据类型,大概可能是因为JSON作为编程语言的交互桥梁,Null、Boolean、Number和String这4种数据类型各种语言都支持,而undefined是ECMAScript所特有的,所以才不支持的吧;
【注】js字符串与json字符串的最大区别在于:json字符串必须使用双引号,单引号会导致语法错误!
2、复杂数据类型
1)对象
2)数组
【注】
与js的对象字面量相比,json对象有三个地方不一样:
1、没有声明变量,
2、没有末尾的分号
3、对象的属性必须加双引号,这在json中是必须的;
json的解析与序列化
早期的JSON解析器基本上就是使用js的eval()函数,而ECMAScript5对解析json的行为进行了规范,定义了全局对象JSON,支持这个对象的浏览器有IE8+、Firefox3.5、Safari4+、Chromo和Opera10+,对于不支持json对象的浏览器可以使用eval()函数
stringify()把一个js对象序列化为一个json字符串,
var str = '{"a":1,"b":2}'; if(typeof JSON === Object){ var obj = JSON.parse(str); }else{ var obj = eval("("+str+")"); } console.log(obj.a);//在IE7下没问题,可以输出1