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 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
利用jQuery操作对象数组的实现代码
Apr 27 Javascript
简单易用的倒计时js代码
Aug 04 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
js仿淘宝评价评分功能
Feb 28 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
Oct 08 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
js中值引用和地址引用实例分析
Jun 21 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
php GUID生成函数和类
2014/03/10 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php session_decode函数用法讲解
2019/05/26 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
如何用Python 加密文件
2020/09/10 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
学校安全教育制度
2014/01/31 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
2015年教师节主持词
2015/07/03 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技