JavaScript中的对象序列化介绍


Posted in Javascript onDecember 30, 2014

与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格式化数字的函数代码
Nov 30 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
判断JS对象是否拥有某种属性的两种方式
Dec 02 Javascript
jQuery中的Deferred和promise 的区别
Apr 03 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
js canvas实现QQ拨打电话特效
May 10 Javascript
微信小程序页面滑动屏幕加载数据效果
Nov 16 Javascript
js+html获取系统当前时间
Nov 10 Javascript
Bootstrap Table实现定时刷新数据的方法
Aug 13 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
vue中input的v-model清空操作
Sep 06 Javascript
JavaScript中的数组特性介绍
Dec 30 #Javascript
JavaScript中数组成员的添加、删除介绍
Dec 30 #Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 #Javascript
JavaScript中的数组操作介绍
Dec 30 #Javascript
jQuery中:first选择器用法实例
Dec 30 #Javascript
JavaScript中的类数组对象介绍
Dec 30 #Javascript
JavaScript中的方法调用详细介绍
Dec 30 #Javascript
You might like
php获取301跳转URL简单实例
2013/12/16 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
js获取Get值的方法
2016/09/29 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
linux系统都有哪些运行级别
2012/04/15 面试题
篮球社团活动总结
2014/06/27 职场文书
庆七一宣传标语
2014/10/08 职场文书
教师三严三实心得体会
2014/10/11 职场文书
期末复习计划
2015/01/19 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
如何在Python项目中引入日志
2021/05/31 Python
Golang日志包的使用
2022/04/20 Golang
5个实用的JavaScript新特性
2022/06/16 Javascript