JavaScript中的对象序列化介绍
与Java语言一样,JavaScript中可以对对象进行序列化和反序列化,藉此对对象进行保存。ECMAScript 5标准中,JavaScript中的对象序列化是通过JSON.stringify()来实现的,而反序列化则通过JSON.parse()来实现:
var o = {x:1, y:29, z:42};
var s = JSON.stringify(o);
console.log(s);//{"x":1,"y":29,"z":42}
var c = JSON.parse(s);
console.log(c);//Object {x=1, y=29, z=42}
对于仅支持ECMAScript 3标准的浏览器,可以使用Douglas Crockford写的json2.js (https://github.com/douglascrockford/JSON-js)。
在对对象进行序列化过程中,NaN、Infinity和-Infinity将被序列化成”null”;Date对象将被序列化成表示相应时间的字符串(但当使用JSON.parse()反序列化时,该时间字符串将作为普通字符串存在,不会被重新构建为Date对象)。
使用JSON.stringify()序列化对象时,所序列化的property仅限于对象自身(Own)的enumerable的property。而在JSON.stringify()运行时,JavaScript会先查找需要序列化的对象中是否有toJSON()方法,如果toJSON()方法存在,则调用该方法并将其返回的结果作为序列化的目标。如果toJSON()方法不存在,则使用默认的序列化方法。
上一篇:javascript中解析四则运算表达式的算法和示例
栏 目:JavaScript代码
下一篇:innerHTML,outerHTML,innerText,outerText的用法及区别解析
本文标题:JavaScript中的对象序列化介绍
本文地址:http://www.codeinn.net/misctech/29551.html