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类库D
Oct 24 Javascript
jQuery实现长文字部分显示代码
May 13 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
jquery实现预览提交的表单代码分享
May 21 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
Aug 01 Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
微信小程序实现同一页面取值的方法分析
Apr 30 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
Vue监视数据的原理详解
Feb 24 Vue.js
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 魔术函数使用说明
2010/05/14 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
angularJS 入门基础
2015/02/09 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
mac系统安装Python3初体验
2018/01/02 Python
Python使用xpath实现图片爬取
2020/09/16 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
大型会议策划方案
2014/05/17 职场文书
新年晚会开场白
2015/05/29 职场文书
新闻通讯稿模板
2015/07/22 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
Python实现单例模式的5种方法
2021/06/15 Python
你知道Java Spring的两种事务吗
2022/03/16 Java/Android