JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。用来序列化对象、数组、数值、字符串、布尔值和 null 。JSON 不支持 JavaScript 中的特殊值 undefined、symbol、变量、函数、对象实例。

简单值

简单值:表示字符串、数值、布尔值和 null。

1
// 有效的JSON数据
2
5
3
"Hello World"

JavaScript 字符串与 JSON 字符串的最大区别在于,JSON 字符串必须使用双引号(单引号会导致语法错误)。

对象

JSON 中的对象与 JavaScript 字面量稍微有一些不同。对象作为一种复杂数据类型,表示的是一组无序的键值对。

1
// JavaScript
2
var object = {
3
  "name": "Jake",
4
  "age": 26
5
};
6
// JSON
7
{
8
  "name": "Jake",
9
  "age": 26
10
}

与 JavaScript 的对象字面量相比,JSON 对象有两个地方不一样。首先,没有声明变量( JSON 中没有变量的概念)。其次,没有末尾的分号。JSON 中对象的属性必须加双引号,属性的值可以是简单值,也可以是复杂类型值。

数组

JSON 中第二种复杂数据类型是数组。

1
// JavaScript
2
var array = [25,"hi",true];
3
// JSON
4
[25,"hi",true]

方法

JSON 对象有两个方法:stringify() 和 parse() 。

stringify() 方法

JSON.stringify() 方法将一个 JavaScript 值转换为一个 JSON 字符串。

1
JSON.stringify({});                  // '{}'
2
JSON.stringify(true);                // 'true'
3
JSON.stringify("foo");               // '"foo"'
4
JSON.stringify([1, "false", false]); // '[1,"false",false]'
5
JSON.stringify({ x: 5 });            // '{"x":5}'
6
JSON.stringify({x: 5, y: 6})         // '{"x":5,"y":6}'

parse() 方法

JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象。

1
JSON.parse('{}');              // {}
2
JSON.parse('true');            // true
3
JSON.parse('"foo"');           // "foo"
4
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
5
JSON.parse('null');            // null