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 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
jquery动感漂浮导航菜单代码分享
Apr 15 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
js传值后台中文出现乱码的解决方法
Jun 30 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
详解基于webpack搭建react运行环境
Jun 01 Javascript
详解vue的双向绑定原理及实现
May 05 Javascript
javascript操作元素的常见方法小结
Nov 13 Javascript
在HTML5 localStorage中存储对象的示例代码
Apr 21 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
vue数据双向绑定的注意点
2017/06/23 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
校本教研工作制度
2014/01/22 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
初中教师业务学习材料
2014/05/12 职场文书
技校毕业生自荐书
2014/05/23 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js