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 相关文章推荐
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
Jquery submit()无法提交问题
Apr 21 Javascript
JS案例分享之金额小写转大写
May 15 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
基于vue实现分页/翻页组件paginator示例
Mar 09 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
关于Javascript闭包与应用的详解
Apr 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
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
document.createElement()用法
2013/03/13 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
jquery easyui使用心得
2014/07/07 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
快速入门python学习笔记
2017/12/06 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python反编译学习之字节码详解
2019/05/19 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
python中get和post有什么区别
2020/06/19 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
军人违纪检讨书
2014/02/04 职场文书
工厂搬迁方案
2014/05/11 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
上班离岗检讨书
2014/09/10 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
2016春季运动会前导词
2015/11/25 职场文书
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers