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字符编码函数区别分析
Jun 05 Javascript
Firefox window.close()的使用注意事项
Apr 11 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
js获取浏览器和屏幕的各种宽度高度
Feb 22 Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
JS使用for in有序获取对象数据
May 19 Javascript
MutationObserver在页面水印实现起到的作用详解
Jul 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
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
举例说明类变量和实例变量的区别
2016/06/30 面试题
亮化工程实施方案
2014/03/17 职场文书
毕业自我鉴定书
2014/03/24 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
岗位说明书怎么写
2014/07/30 职场文书
先进工作者事迹材料
2014/12/23 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript