js解析与序列化json数据(三)json的解析探讨


Posted in Javascript onFebruary 01, 2013

这一节我们主要讨论json的解析。
JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将早每个键值对上调用。为了区别JSON.stringify()接收的替换(过滤)函数(replacer),这个函数被称作还原函数(reviver),但实际上这两个函数的签名是相同的——它们都接收连个参数,一个键和一个值,而且都需要返回一个值。

如果还原函数返回undefined,则表示要从结果中删除相应的键;如果返回其他值,则将该值插入到结果中。如:

<html> 
<head> 
<title></title> 
<script type="text/javascript"> 
function init() 
{ 
var student={ 
name:"Bill", 
birthDate:new Date(1990,8,4) 
}; 
var jsonText=JSON.stringify(student); 
var studentObject=JSON.parse(jsonText,function(key,value){ 
if(key=="birthDate") 
{ 
return new Date(value); 
} 
else 
{ 
return value; 
} 
}); 
} 
</script> 
</head> 
<body> 
<input type="button" onclick="init()" value="测试" /> 
</body> 
</html>

以上代码先是为student添加了出生日期birthDate属性,该属性保存着一个Date对象。这个对象在经过序列化之后变成了有效地JSON字符串,然后经过解析又在studentObject中还原为一个Date对象。
Javascript 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
Jun 11 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
JS图片等比例缩放方法完整示例
Aug 03 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
Nov 27 Javascript
微信小程序slider组件使用详解
Jan 31 Javascript
Vue入门之animate过渡动画效果
Apr 08 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
JavaScript获取URL参数的方法分享
Apr 07 Javascript
js解析与序列化json数据(二)序列化探讨
Feb 01 #Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
Feb 01 #Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 #Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 #Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 #Javascript
js用Date对象处理时间实现思路及代码
Jan 31 #Javascript
document.all的一个比较完整的总结及案例
Jan 31 #Javascript
You might like
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
jquery选择器需要注意的问题
2014/11/26 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
Python set集合类型操作总结
2014/11/07 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python selenium如何设置等待时间
2016/09/15 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Python命令行click参数用法解析
2019/12/19 Python
浅析python函数式编程
2020/09/26 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
中文系学生自荐信范文
2013/11/13 职场文书
商铺租赁意向书
2014/04/01 职场文书
通用员工手册范本
2015/05/14 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA