JavaScript中的对象序列化介绍_javascript技巧
程序员文章站
2022-05-12 17:09:40
...
与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}
复制代码 代码如下:
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()方法不存在,则使用默认的序列化方法。
上一篇: html
下一篇: HTML中表格动态添加的方法
推荐阅读
-
JGrid中拖动改变列宽的脚本 原型_javascript技巧
-
对象特征检测法判断浏览器对javascript对象的支持_javascript技巧
-
javascript中以new形式创建对象的过程
-
让多个输入框中的内容同时变化的js代码_javascript技巧
-
JS中Iframe之间传值的方法_javascript技巧
-
URL地址中的#符号使用说明_javascript技巧
-
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题_javascript技巧
-
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML_javascript技巧
-
js中判断Object、Array、Function等引用类型对象是否相等_javascript技巧
-
JavaScript中getAttribute的使用介绍