html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

JavaScript中的对象与JSON_基础知识_

[ ] 已经帮助:人解决问题

简介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先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助