JSON对象的方法。

   JOSN 对象

       早期的JSON解析器基本上就是JavaScript的eval()函数。由于JSON是JavaScript语法的子集,因此eval()函数可以解析,解释并返回JavaScript对象和数组。ECMAScript5对解析JSON的行为进行规范,蒂定义了全局对象JSON。使用eval()对json数据结构求值存在风险,因为可以能会执行一些恶意代码。 对于不能原生支持JSON解析的浏览器,使用这个shim的最佳选择。

  JOSN对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON解析到原生JavaScript值。

 var book = {
		title:"Pro Javascript",
		year:2011,
		edition:3
		} //{"title":"Pro Javascript","year":"2011","edition":"3"}
		var jsonText = JSON.Stringify(book);
		//JSON.stringify()把一个JavaScript对象序列化为一个JSON字符串,然后将他保存在变量jsonText
  var bookCopy = JSON.parse(jsonText);
        //将JSON字符串直接传递给JSON.parse()就可以得到相应的JavaScript值。
        //虽然book和bookcopy具有相同的属性,但他们是两个独立的没有任何关系的对象。如果传给json.parse()
        //不是有效的JSON,该方法会抛出错误。

    toJSON( )方法

       有的时候,JSON.stringify()还是不能满足对某些对象进行自定义序列化的需求。在这些情况下。可以给对象定义toJSON()方法,返回其自身的json数据格式。原生Date对象有一个toJSON()方法,能够将JavaScript的date对象自动转换成ISO8601日期字符串(与Date对象调用toISOString()的结果是一样的)。可以给任何对象添加toJSON( )方法。

       toJSON()可以作为函数过滤器的补充,因此理解序列化的内部顺序十分重要。假设把一个对象传入JSON.stringify().序列化该对象的的顺序如下:

 1,如果存在toJSON()方法而且能够通过它取的有效的值,则调用该方法。否则,返回对象本身。

 2,如果提供第二个参数,应用这个函数的过滤器。传入函数过滤器的值是第(1)步返回的值。

 3,对第二步返回的每个值进行相应的序列化。

 4,如果提供了第三个参数,执行相应的格式化。

无论是考虑定义toJSON()方法,还是考虑使用函数过滤器,亦或需要同时使用两者,理解这个顺序都是至关重要的。

阅读更多
个人分类: JavaScript
想对作者说点什么? 我来说一句

json对象转换兼容js

2013年11月07日 5KB 下载

JAVA构造json对象的方法

2013年02月25日 1KB 下载

json2.js(json.js)

2014年03月15日 18KB 下载

json操作类库

2017年01月08日 18KB 下载

json的序列化和反序列化

2015年12月31日 18KB 下载

没有更多推荐了,返回首页

不良信息举报

JSON对象的方法。

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭