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 相关文章推荐
js loading加载效果实现代码
Nov 24 Javascript
js null undefined 空区别说明
Jun 13 Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 Javascript
jQuery文件上传控件 Uploadify 详解
Jun 20 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
详谈javascript精度问题与调整
Jul 08 Javascript
vue调试工具vue-devtools安装及使用方法
Nov 07 Javascript
javascript中如何判断类型汇总
May 14 Javascript
Nuxt.js实战和配置详解
Aug 05 Javascript
详解JavaScript之ES5的继承
Jul 08 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字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP echo()函数讲解
2019/02/15 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JS高级笔记
2011/07/13 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
django批量导入xml数据
2016/10/16 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python操作kafka实践的示例代码
2019/06/19 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
python爬取招聘要求等信息实例
2020/11/20 Python
python math模块的基本使用教程
2021/01/16 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
教师节促销方案
2014/03/22 职场文书
2014教师研修学习体会
2014/07/08 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
武侯祠导游词
2015/02/04 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
上帝也疯狂观后感
2015/06/09 职场文书