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获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
微信小程序联网请求的轮播图
Jul 07 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
VUE 组件转换为微信小程序组件的方法
Nov 06 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
js原型链原理看图说明
2012/07/07 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
php中and 和 &&出坑指南
2018/07/13 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
python 运用Django 开发后台接口的实例
2018/12/11 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
python匿名函数用法实例分析
2019/08/03 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
python中pop()函数的语法与实例
2020/12/01 Python
python如何构建mock接口服务
2021/01/28 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
学校元旦晚会方案
2014/02/19 职场文书
新年主持词
2014/03/27 职场文书
中学生英语演讲稿
2014/04/26 职场文书
维修工先进事迹
2014/05/29 职场文书
慰问信范文
2015/02/14 职场文书