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 相关文章推荐
Prototype源码浅析 String部分(一)之有关indexOf优化
Jan 15 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
Nov 19 Javascript
jquery实现的网页自动播放声音
Apr 30 Javascript
Jquery常用的方法汇总
Sep 01 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
微信小程序 动态绑定事件并实现事件修改样式
Apr 13 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 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
PHP中单例模式与工厂模式详解
2017/02/17 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
pytorch permute维度转换方法
2018/12/14 Python
django admin组件使用方法详解
2019/07/19 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
python怎么提高计算速度
2020/06/11 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
中专生自我鉴定范文
2014/02/02 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
国际贸易实训报告
2014/11/05 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
个人事迹材料范文
2014/12/29 职场文书
公司员工管理制度
2015/08/04 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android