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 相关文章推荐
限制复选框的最大可选数
Jul 01 Javascript
获取DOM对象的几种扩展及简写
Oct 09 Javascript
JavaScript中的Screen屏幕对象
Jan 16 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
表单验证正则表达式实例代码详解
Nov 09 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
浅谈javascript的闭包
Jan 23 Javascript
Javascript中click与blur事件的顺序详析
Apr 25 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
chosen实现省市区三级联动
Aug 16 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 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文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
php 404错误页面实现代码
2009/06/22 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python爬取拉勾网职位数据的方法
2018/01/24 Python
浅析python继承与多重继承
2018/09/13 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
秋季校运动会广播稿
2014/02/23 职场文书
入学申请自荐信范文
2014/02/26 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS