简介3EnHTML5中文学习网 - HTML5先行者学习网
JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。3EnHTML5中文学习网 - HTML5先行者学习网
JSON是一种数据交换格式,像XML和YAML一样是一种在各种不同语言间传递结构化信息的方式。从另一方面来说,javascript对象是javascript语言中的一种数据类型,就像PHP中的数组、C++中类和结构体。3EnHTML5中文学习网 - HTML5先行者学习网
定义JSON与javascript对象3EnHTML5中文学习网 - HTML5先行者学习网
在javascript程序中定义对象的时候,对象的属性名可以加双引号也可以不加双引号。如果属性名包含特殊字符(如!、if等)的时候,就必须加双引号。3EnHTML5中文学习网 - HTML5先行者学习网
在定义JSON的时候,属性名必须加双引号。3EnHTML5中文学习网 - HTML5先行者学习网
代码示例:3EnHTML5中文学习网 - HTML5先行者学习网
1.定义javascript对象3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网
var obj={name:"tudouya","sex":"man"}; #两个属性可以加双引号也可以不加3EnHTML5中文学习网 - HTML5先行者学习网
var obj={"!":"hello world"}; #属性名包含特殊字符时必须加双引号3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网2.定义JSON字符串3EnHTML5中文学习网 - HTML5先行者学习网3EnHTML5中文学习网 - HTML5先行者学习网
var jsonString={"name":"tudouya"}; #定义JSON时必须加双引号3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网javascript对象转换为JSON3EnHTML5中文学习网 - HTML5先行者学习网
1.javascript对象转换为JSON3EnHTML5中文学习网 - HTML5先行者学习网
我们可以使用javascript的内置函数将javascript对象转换为JSON,这个函数就是JSON.stringify().3EnHTML5中文学习网 - HTML5先行者学习网
代码示例:3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网
var obj={name:"tudouya",sex:"man"};3EnHTML5中文学习网 - HTML5先行者学习网
var jsonObj=JSON.stringify(obj);3EnHTML5中文学习网 - HTML5先行者学习网
console.log(jsonObj);3EnHTML5中文学习网 - HTML5先行者学习网
##输出结果为:{"name":"tudouya","sex":"man"}3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网在将javascript对象转换为JSON的时候,有一点是需要我们注意的:
3EnHTML5中文学习网 - HTML5先行者学习网如果对象中包含有值为函数和日期的属性,JSON会忽略值为函数的属性,并将值为日期的属性转换为字符串。
3EnHTML5中文学习网 - HTML5先行者学习网代码示例:
3EnHTML5中文学习网 - HTML5先行者学习网3EnHTML5中文学习网 - HTML5先行者学习网
var obj={3EnHTML5中文学习网 - HTML5先行者学习网
name:"tudouya",3EnHTML5中文学习网 - HTML5先行者学习网
birthday:new Date(),3EnHTML5中文学习网 - HTML5先行者学习网
action:function (){3EnHTML5中文学习网 - HTML5先行者学习网
document.write("walk");3EnHTML5中文学习网 - HTML5先行者学习网
}3EnHTML5中文学习网 - HTML5先行者学习网
};3EnHTML5中文学习网 - HTML5先行者学习网
var jsonObj=JSON.stringify(obj);3EnHTML5中文学习网 - HTML5先行者学习网
console.log(jsonObj);3EnHTML5中文学习网 - HTML5先行者学习网
##输出结果为:{"name":"tudouya","birthday":"2014-08-12T10:05:00.497Z"}3EnHTML5中文学习网 - HTML5先行者学习网
3EnHTML5中文学习网 - HTML5先行者学习网javascript中解析JSON3EnHTML5中文学习网 - HTML5先行者学习网
在老版本的JS中,大家通常都使用eval()函数来解析JSON,但是ECMAScript5给我们提供了一个解析JSON的新函数JSON.parse()。3EnHTML5中文学习网 - HTML5先行者学习网
这个函数的使用方法比较简单,大家可以自行尝试。当对某个JSON字符串应用该函数以后,该JSON就被转换为javascript的对象,也就是说当用typeof运算符查看该函数的类型时,返回的值是Object。3EnHTML5中文学习网 - HTML5先行者学习网
同样有一点需要注意的是,该函数是ECMAScript5以后才支持的,如果是旧版本的浏览器那么可能不支持该函数。解决的方法是加载一个实现该函数的js文件,即json2.js。如果使用的是JQuery框架,jQuery.parseJSON(),该函数调用了JSON.parse()方法。3EnHTML5中文学习网 - HTML5先行者学习网
关于使用eval()方法解析JSON,这个等深入学习后会记录下来。3EnHTML5中文学习网 - HTML5先行者学习网
一个很重要的概念3EnHTML5中文学习网 - HTML5先行者学习网
作为一个前端菜鸟,经常听到别人说“JSON对象”,但是其实并没有“JSON对象”这个概念,JSON真正的表现形式是字符串。3EnHTML5中文学习网 - HTML5先行者学习网