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 相关文章推荐
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
JavaScript实现定时隐藏与显示图片的方法
Aug 06 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
JS实战篇之收缩菜单表单布局
Dec 10 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
JavaScript代码调试方法实例小结
Jan 05 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
js面试题之异步问题的深入理解
Sep 20 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
如何将数据从文本导入到mysql
2006/10/09 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php curl模拟post请求小实例
2013/11/13 PHP
PHP实现文件下载详解
2014/11/27 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
JS轮播图的实现方法2
2020/08/25 Javascript
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python集合删除多种方法详解
2020/02/10 Python
浅谈Python 函数式编程
2020/06/20 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Java面试题及答案
2012/09/08 面试题
学校对教师的评语
2014/04/28 职场文书
法院授权委托书格式
2014/09/28 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
python之django路由和视图案例教程
2021/07/26 Python
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python