JSON

JSON是一种数据格式,不是一种编程语言。

JSON的语法可以表示以下三种类型的值。

  • 简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串,数值,布尔值和null。但JSON不支持JavaScript中的特殊值undefined。
  • 对象:对象作为一种复杂数据类型,表示的是一组无序的键值对。而每个键值对中的值可以是简单值,也可以是复杂数据类型的值。
  • 数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数据索引来访问其中的值。数组的值也可以是任意类型---简单值,对象或数组。

早期的JSON解析器基本上就是使用JavaScript的eval()函数。ECMAScript5对解析JSON的行为进行规范,定义了全局对象JSON。

JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生的JavaScript值。

在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效的JSON数据类型的实例属性。

实际上,JSON.stringify()除了要序列化的JavaScript对象外,还可以接收另外两个参数,这两个参数用于指定以不同的方式序列化JavaScript对象。第一个参数是个过滤器,可以是一个数组,也可以是一个函数;第二个参数是一个选项表示是否在JSON字符串中保留缩进。

JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将在每个键值对上调用。

相关推荐