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 相关文章推荐
Flash对联广告的关闭按钮讨论
Jan 30 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 Javascript
jQuery 下拉列表 二级联动插件分享
Mar 29 Javascript
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
将中国标准时间转换成标准格式的代码
Mar 20 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
AngularJS过滤器filter用法总结
Dec 13 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
vue+iview/elementUi实现城市多选
Mar 28 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
Javascript 解疑
2009/11/11 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
理解JS绑定事件
2016/01/19 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python实现汽车管理系统
2018/11/30 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
初三化学教学反思
2014/01/23 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
《老王》教学反思
2014/02/23 职场文书
年终晚会主持词
2014/03/25 职场文书
租车协议书范本
2014/04/22 职场文书
社区反邪教工作方案
2014/06/16 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
dubbo服务整合zipkin详解
2021/07/26 Java/Android
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript