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中Array 对象相关的几个方法
Dec 22 Javascript
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
JavaScript面向对象精要(下部)
Sep 12 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
p5.js码绘“跳动的小正方形”的实现代码
Oct 22 Javascript
详解JavaScript中new操作符的解析和实现
Sep 04 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中的一些数组排序方法分享
2012/07/20 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
JS中的phototype详解
2017/02/04 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
Python模拟登陆实现代码
2017/06/14 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
python实现根据文件格式分类
2019/10/31 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
给女儿的表扬信
2014/01/18 职场文书
运动会通讯稿50字
2014/01/30 职场文书
投资协议书范本
2014/04/21 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
2014年团委工作总结
2014/11/13 职场文书
公司食堂管理制度
2015/08/05 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏