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中不为人知的五种声明Number的方式简要概述
Feb 22 Javascript
类似天猫商品详情随浏览器移动的示例代码
Feb 27 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
利用vue实现模态框组件
Dec 19 Javascript
canvas实现探照灯效果
Feb 07 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
Mar 06 Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
JavaScript中的this/call/apply/bind的使用及区别
Mar 06 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
Sep 17 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下读取文本文件的代码
2008/07/02 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
Javascript Throttle &amp; Debounce应用介绍
2013/03/19 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
成立公司计划书
2014/05/07 职场文书
学校教师读书活动总结
2014/07/08 职场文书
2015年项目工作总结
2015/04/29 职场文书
主题班会开场白
2015/06/01 职场文书
龙猫观后感
2015/06/09 职场文书
推广普通话的宣传语
2015/07/13 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Go中的条件语句Switch示例详解
2021/08/23 Golang