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脚本类
Aug 27 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
js实现简单秒表走动的时钟特效
Mar 25 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
浅析vue-router原理
Oct 19 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 Javascript
vue实现简单加法计算器
Oct 22 Javascript
vue实现Toast组件轻提示
Apr 10 Vue.js
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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP微信红包API接口
2015/12/05 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
Python中用于计算对数的log()方法
2015/05/15 Python
Python 装饰器深入理解
2017/03/16 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
使用Python 统计高频字数的方法
2019/01/31 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
计算机应用专业毕业生求职信
2014/06/03 职场文书
爱国主义教育演讲稿
2014/08/26 职场文书
离婚协议书格式
2014/11/21 职场文书
优秀校长事迹材料
2014/12/24 职场文书
大学生暑期实践报告
2015/07/13 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP