[乐意黎转载]json的解析与序列化
2016-12-12 11:26
239 查看
JSON是一种用于网络通信的轻量级的数据格式,它比XML更加简洁。JSON是JavaScript的一个严格的子集,但是JSON并不从属于JavaScript。
在ECMASCript 5对解析JSON的行为进行规范,定义了全局对象JSON,这个对象有两个方法
stringify(): 把一个JavaScript对象序列化为一个JSON字符串
parse(): 将一个JSON字符串解析为原生的JavaScript值
下面详解。
早期一般都是采用eval()来进行JSON解析,但是在旧版本的浏览器中,使用eval()对JSON数据结构求值存在风险,因为可能会执行一些恶意的代码。
stringify()可以接收另外两个参数,可以用于以不同的方式序列化JavaScript对象。
第一个参数是过滤器,可以是一个数组,也可以是一个函数
可以通过数组来指定序列化的属性
通过函数也可以进行过滤
第二个参数是一个选项,表示是否在JSON字符串中保留缩进
例如在每个级别缩进4个空格
在有些情况下,可以通过对象上调用toJSON()方法,返回其自身的JSON数据格式,也可以为任何对象添加toJSON()方法。
例如Date对象就有一个toJSON方法,能够将JavaScript的Date对象自动转换成ISO日期字符串。
parse()还可以再接收一个函数作为参数,对每个键值进行过滤(又叫做还原)。在函数中返回undefined,则表示从结果中删除响应的键,如果返回其他值,则将该值插入到结果中。
例如将日期字符串转换为Date对象时,经常要用到
#
数据格式
原文地址: https://zhangguixu.github.io/2016/12/02/json/
本文地址:http://blog.csdn.net/aerchi/article/details/53580811
在ECMASCript 5对解析JSON的行为进行规范,定义了全局对象JSON,这个对象有两个方法
stringify(): 把一个JavaScript对象序列化为一个JSON字符串
parse(): 将一个JSON字符串解析为原生的JavaScript值
下面详解。
1.
解析与序列化
1.1
eval()
早期一般都是采用eval()来进行JSON解析,但是在旧版本的浏览器中,使用eval()对JSON数据结构求值存在风险,因为可能会执行一些恶意的代码。
1.2
stringify()
stringify()可以接收另外两个参数,可以用于以不同的方式序列化JavaScript对象。第一个参数是过滤器,可以是一个数组,也可以是一个函数
可以通过数组来指定序列化的属性
1 | JSON.stringify(book, ["title","edition"]); |
12345 | JSON.stringify(book, function(key, value){ switch(key){ // 进行处理 }}); |
例如在每个级别缩进4个空格
1 | JSON.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
相关文章推荐
- JSON 体验JSON (三)JSON 数据格式解析(转载)
- 转载:JQuery解析Json
- C# 序列化json,以及前端解析json
- js解析与序列化json数据(二)
- js解析与序列化json数据(一)
- 转载--ASP解析JSON
- js解析与序列化json数据(一)json.stringify()的基本用法
- 用js解析经后台json序列化后的C#的DateTime类型数据
- Java下利用Jackson进行JSON解析和序列化示例
- 一个.NET通用JSON解析/构建类的实现(c#)(转载)
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象(转载)
- 艾伟_转载:使用.NET框架自带的Json序列化类
- alibaba fastjson(json序列化器)序列化部分源码解析-2-性能优化B
- Mvc4 web-Api Json 序列化,日期Java解析失败的解决方法
- 用js解析经json序列化后的C#的DateTime类型数据
- 转载:JQuery解析Json
- alibaba fastjson(json序列化器)序列化部分源码解析-2-性能优化A
- 转载:ASP.NET中JSON的序列化和反序列化
- js解析与序列化json数据(三)json的解析探讨
- js解析与序列化json数据(二)序列化探讨