使用JSON对象

课后整理 2020-12-20

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。

相比 XML 格式,JSON 格式有两个显著的优点:书写简单,一目了然;符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON迅速被接受,已经成为各大网站交换数据的标准格式,并被写入ECMAScript 5,成为标准的一部分。

简单说,每个 JSON 对象,就是一个值。要么是简单类型的值,要么是复合类型的值,但是只能是一个值,不能是两个或更多的值。这就是说,每个 JSON 文档只能包含一个值。

JSON 对值的类型和格式有严格的规定。

【示例】以下是合格的 JSON 值。

["one", "two", "three"]
{ "one": 1, "two": 2, "three": 3 }
{"names": ["张三", "李四"] }
[ { "name": "张三"}, {"name":  "李四"} ]

以下是不合格的 JSON 值。

{ name: "张三", 'age': 32 }   // 属性名必须使用双引号 
[32, 64, 128, 0xFFF] // 不能使用十六进制值 
{ "name": "张三", "age": undefined } // 不能使用undefined
{ "name": "张三",
  "birthday": new  Date('Fri, 26 Aug 2011 07:13:10 GMT'),
  "getName": function()  {
      return this.name;
  }
} // 不能使用函数和日期对象 

注意,空数组和空对象都是合格的 JSON 值,null本身也是一个合格的 JSON 值。

ECMAScript 5新增了JSON对象,用来处理 JSON 格式数据。它有两个方法:JSON.stringify()和JSON.parse()。