[乐意黎转载]json的解析与序列化
来源:互联网 发布:已经备案的域名 购买 编辑:程序博客网 时间:2024/05/17 05:04
JSON是一种用于网络通信的轻量级的数据格式,它比XML更加简洁。JSON是JavaScript的一个严格的子集,但是JSON并不从属于JavaScript。
在ECMASCript 5对解析JSON的行为进行规范,定义了全局对象JSON,这个对象有两个方法
- stringify(): 把一个JavaScript对象序列化为一个JSON字符串
- parse(): 将一个JSON字符串解析为原生的JavaScript值
下面详解。
1. 解析与序列化
1.1 eval()
早期一般都是采用eval()来进行JSON解析,但是在旧版本的浏览器中,使用eval()对JSON数据结构求值存在风险,因为可能会执行一些恶意的代码。
1.2 stringify()
stringify()可以接收另外两个参数,可以用于以不同的方式序列化JavaScript对象。
第一个参数是过滤器,可以是一个数组,也可以是一个函数
可以通过数组来指定序列化的属性
1JSON.stringify(book, ["title","edition"]);通过函数也可以进行过滤
12345JSON.stringify(book, function(key, value){switch(key){// 进行处理}});第二个参数是一个选项,表示是否在JSON字符串中保留缩进
例如在每个级别缩进4个空格
1JSON.stringify(book, null, 4);
1.3 toJSON()
在有些情况下,可以通过对象上调用toJSON()方法,返回其自身的JSON数据格式,也可以为任何对象添加toJSON()方法。
例如Date对象就有一个toJSON方法,能够将JavaScript的Date对象自动转换成ISO日期字符串。
1.4 parse()
parse()还可以再接收一个函数作为参数,对每个键值进行过滤(又叫做还原)。在函数中返回undefined,则表示从结果中删除响应的键,如果返回其他值,则将该值插入到结果中。
例如将日期字符串转换为Date对象时,经常要用到
1234567
JSON.parse(jsonText, function(key, value){if(key == "releaseDate") {return new Date(value);} else {return value;}});
原文地址: https://zhangguixu.github.io/2016/12/02/json/
本文地址:http://blog.csdn.net/aerchi/article/details/53580811
0 0
- [乐意黎转载]json的解析与序列化
- JSON的解析与序列化
- JSON数据格式的解析与序列化
- [乐意黎转载]jsonp的原理与实现
- [乐意黎转载]CentOS yum 源的配置与使用
- JSON解析与序列化
- JSON解析与序列化
- JSON解析与序列化
- JSON--解析与序列化
- [乐意黎转载]高效 jquery 的奥秘
- [乐意黎转载]图片的DataURL技术
- JavaScript中JSON的解析与序列化
- [乐意黎转载]PhantomJS
- 浅谈Json解析与序列化
- [乐意黎转载]云服务器ECS下的FTP服务的安装配置与使用
- [乐意黎转载]从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- [乐意黎转载]残疾人与常人究竟有哪些区别
- 序列化JSON格式数据的解析
- 牛客:剑指offer:孩子们的游戏(圆圈中最后剩下的数) (Java)
- 从一个页面获取另一个页面是数据
- Discuz!目录结构
- 如何选择机器学习算法
- raml转换为html,js,markdown
- [乐意黎转载]json的解析与序列化
- Javascript定义类(class)的三种方法
- Maven中properties属性
- 深入理解Java对象序列化
- dom4j基本操作
- Android中集成支付宝接口实现支付
- Android Gradle自动化之旅—适配渠道包
- Notes on Convolutional Neural Networks
- 关于配置git