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 相关文章推荐
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
关于div自适应高度/左右高度自适应一致的js代码
Mar 22 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
Sep 06 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
jQuery实现右下角可缩放大小的层完整实例
Jun 20 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
vue实现在线学生录入系统
May 30 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
使用Python读取大文件的方法
2018/02/11 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
药店促销活动总结
2014/07/10 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
销售开票员岗位职责
2015/04/15 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
vue的项目如何打包上线
2022/04/13 Vue.js
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android