js020-JSON
2016-01-26 23:04
627 查看
js020-JSON
20.1 语法
JSON的语法可以表示为一下三种类型的值。
1、简单值
最简单的JSON数据形式。例如:
JSON字符串必须使用双引号(单引号会导致语法错误)
2、对象
JSON对象没有变量和分号
3、数组
JSON数组没有变量和分号
20.2 解析与系列化
20.2.1 JSON对象
可以把JSON数据结构解析为有用的JS对象。
JSON对象有两个方法:
20.2.2序列化选项
JSON. stringify()可接收两个参数:1、过滤器或者数组或者函数;2、选项:表示是否在JSON字符串中保留缩进。
使用这两个参数可以指定不同方式序列化JS对象。
一、过滤结果
二、字符串缩进
JSON. stringify()的三个参数用于控制结果中的缩进和空白符。
参数类型的含义:
三、toJSON()方法
可以为任何对象添加toJSON()方法。
toJSON()方法可以作为函数过滤器的补充,假设把一个对象传入就JSON.stringify(),序列化该对象的顺序如下:
1、如果存在toJSON()方法而且能通过它取得有效的值,则调用该方法,否则返回对象本身。
2、如果提供第二个参数,应用这二个函数过滤器,传入函数过滤器的值是第(1)步返回的值;
3、对第(2)步返回的每个值进行相应的序列化;
4、如果提供第三个参数,指向相应的格式化。
20.2.3解析选项
JSON.parse()方法可接收另一个参数:函数(将在每个键值对上调用)。为了区分JSON.stringify()接收的替换函数,这个函数成为还原函数(实际上这另个函数的签名是相同的,它们都接收两个参数:一个键和一个值,且都返回一个值)
如果还原函数返回一个Undefined值,表示要从结果中删除相应的键,返回其他值,则将该值插入到结果中。
声明:该博客由http://www.cnblogs.com/lal-fighting/原创发表,未经作者允许,不得私自转载抄袭!!!
20.1 语法
JSON的语法可以表示为一下三种类型的值。
简单值 | 使用与JS相同的语法,可以在JSON中表示字符串、数值、布尔值和null,但是JSON不支持JS中的特殊性Undefined |
对象 | 对象作为一种复杂数据类型, 表示一组无序的键值对。每个键值对中的值可以是简单值,也可以是复杂数据类型值。 |
数组 | 一种复杂数据类型,表示一组有序的值的列表,可以通过数值 |
最简单的JSON数据形式。例如:
5 | JSON 表示数值5的方式 |
“Hello word” | JSON 表示字符串的方式 |
2、对象
JS对象字面量 | JS对象字面量另一种写法 | JSON表示的上述对象的方式 |
var person = { name:"meimei"; age:18; }; | var person = { "name":"meimei"; "age":18; }; | { "name":"meimei", "age":18 } |
3、数组
JS对象字面量 | JSON表示的上述对象的方式 |
var values = [25, 'hi', true]; | [25, 'hi', true] |
20.2 解析与系列化
20.2.1 JSON对象
可以把JSON数据结构解析为有用的JS对象。
JSON对象有两个方法:
stringify() | 把JS对象序列化为JSON字符串。在序列化JS对象是,所有函数原型成员都会被有意忽略,不体现在结果中,值为Undefined的任何属性也会被跳过。结果最终都是值为有效的JSON数据类型的实力属性。 |
parse() | 把JSON字符串解析为原生的JS值。将JSON字符串直接传递给JSON. parse()就可以得到相应的JS值,如下:创建与book类似的对象: var bookcopy = JSON.parse(jsonText); |
JSON. stringify()可接收两个参数:1、过滤器或者数组或者函数;2、选项:表示是否在JSON字符串中保留缩进。
使用这两个参数可以指定不同方式序列化JS对象。
一、过滤结果
二、字符串缩进
JSON. stringify()的三个参数用于控制结果中的缩进和空白符。
参数类型的含义:
数值 | 非数值(字符串) |
表示的每个级别缩进的空格数,可以通过有效的参数控制换行符。最大缩进空格为10,所有大于10的值都会自动转换为10. | 将该字符串作为缩进字符,(例如:制表符:“—”) |
可以为任何对象添加toJSON()方法。
toJSON()方法可以作为函数过滤器的补充,假设把一个对象传入就JSON.stringify(),序列化该对象的顺序如下:
1、如果存在toJSON()方法而且能通过它取得有效的值,则调用该方法,否则返回对象本身。
2、如果提供第二个参数,应用这二个函数过滤器,传入函数过滤器的值是第(1)步返回的值;
3、对第(2)步返回的每个值进行相应的序列化;
4、如果提供第三个参数,指向相应的格式化。
20.2.3解析选项
JSON.parse()方法可接收另一个参数:函数(将在每个键值对上调用)。为了区分JSON.stringify()接收的替换函数,这个函数成为还原函数(实际上这另个函数的签名是相同的,它们都接收两个参数:一个键和一个值,且都返回一个值)
如果还原函数返回一个Undefined值,表示要从结果中删除相应的键,返回其他值,则将该值插入到结果中。
声明:该博客由http://www.cnblogs.com/lal-fighting/原创发表,未经作者允许,不得私自转载抄袭!!!
相关文章推荐
- js017-错误处理与调试
- Javascript常见知识点
- js event 事件兼容浏览器 ie不需要 event参数 firefox 需要
- JavaScript中的对象(一)——对象的创建
- javascript语音详解(转载)
- js-高级技术
- Html.DropDownListFor() 二级联动 ($.getJSON)
- JavaScript中函数有无括号()的区别
- Jackson 框架,轻易转换JSON
- js下拉菜单(鼠标+键盘双操作)
- js选项卡切换实战
- js表格操作实践
- js-Ajax与Comet
- [Javascript] Task queue & Event loop.
- ConvNetJS源代码解析第一篇
- json的字符串转实体对象
- IE8提示JS错误(KB927917)终极解决方法
- js 控制展开折叠 div html dom
- Javascript 中的非空判断 undefined,null, NaN的区别
- 关于 IScroll5 和IScroll4 的一些用法