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 |