JSON不支持变量、函数和对象实例,他就是一种表示结构化数据的格式。
JSON的语法可以表示三种类型的值:
简单值
JSON表示数值 5 一个简单的数字5
JSON表示字符串 "Hello" 必须双引号,不可以单引号
布尔值和null也是有效的JSON形式,没有undefined
对象
不需要声明变量,对象的属性名必须加引号
数组
[25,“hi”,true]
解析与序列化
JSON对象
JSON对象有两个方法:stringify()和parse()。他们分别用于将JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生的JavaScript值。
默认情况下,JSON.stringify()输出的JSON字符串不包含任何空格或者缩进。
结果中最终都是值为有效的JSON数据类型的实例属性,值为undefined的任何属性直接跳过。
序列化JavaScript如果传递给JSON.parse()的字符串不是有效的JSON,该方法抛出错误
序列化选项
JSON.stringify()还可以接受另外两个参数,第一个是过滤器,可以是数组或者函数,第二个参数是选项,表示是否在JSON中保留缩进。
1. 过滤结果
第二个参数是数组
第二个参数是函数
传入的函数接受两个参数,分别是键与键值
如果返回的是undfined则属性会被忽略
2. 字符串缩进
JSON.parse()方法的第三个参数表示,结果中的缩进与空白符。最大值为10,不可以超过10
JSON在线校验:JSONLint 网址
网友评论