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 相关文章推荐
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
jquery实现显示已选用户
Jul 21 Javascript
让IE8浏览器支持function.bind()方法
Oct 16 Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 Javascript
jquery基础知识第一讲之认识jquery
Mar 17 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 Javascript
JavaScript中数组Array方法详解
Feb 27 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
Node.js path模块,获取文件后缀名操作
Nov 07 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
日本十大惊悚动漫
2020/03/04 日漫
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
django 连接数据库 sqlite的例子
2019/08/14 Python
python生成requirements.txt的两种方法
2019/09/18 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
软件测试面试题
2014/01/05 面试题
应届生学校辅导员求职信
2013/11/07 职场文书
应届大学生自荐信
2013/12/05 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
请假条标准格式规范
2014/04/10 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
教师反邪教心得体会
2016/01/15 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
24年收藏2000多部退役军用电台
2022/02/18 无线电