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 面向对象编程基础:封装
Aug 21 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
浅谈jQuery双事件多重加载的问题
Oct 05 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
tab栏切换原理
Mar 22 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
js实现表单项的全选、反选及删除操作示例
Jun 05 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实现网站插件机制的方法
2009/11/10 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PDO::rollBack讲解
2019/01/29 PHP
接收键盘指令的脚本
2006/06/26 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
web.py在模板中输出美元符号的方法
2014/08/26 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
pandas的排序和排名的具体使用
2019/07/31 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
浅析python中的del用法
2020/09/02 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
公司租房协议书
2014/10/14 职场文书
退学证明范本3篇
2014/10/29 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers