JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,非常适合于人类阅读和编写,同时也易于机器解析和生成。它是基于JavaScript 语言标准ECMA-262 3rd Edition - December 1999的一个子集,但它是独立于语言的文本格式,代码可以在大多数编程语言中使用。
JSON有两种结构:
- "名称/值"对的集合(在多数语言中称为“对象”)
- 值的有序列表(在多数语言中称为“数组”)
JSON的基本规则如下:
-
数据在名称/值对中:一个JSON对象由花括号
{}
包围,并且包含一个或多个键值对。键和值由冒号分隔。键必须是字符串,并用双引号""
包围。{ "name": "John", "age": 30 }
-
数据由逗号分隔:对象和数组中多个键值对或值使用逗号
,
分隔。{ "name": "John", "age": 30, "isDeveloper": true }
-
方括号用于数组:数组由方括号
[]
包围,可以包含多个值(可以是不同类型的),值之间用逗号分隔。{ "name": "John", "age": 30, "skills": ["Java", "JavaScript", "Python"] }
-
值可以是双引号包围的字符串、数字、
true
、false
、null
、对象或者数组。 -
JSON不支持注释。
JSON非常流行,被广泛地用于网络传输,特别是Web应用中前后端的数据交换,以及配置文件的编写。
在JavaScript中,可以使用JSON.parse()
方法将JSON字符串解析为JavaScript对象,也可以使用JSON.stringify()
方法将JavaScript对象转换为JSON字符串。
以下是JSON和JavaScript对象之间转换的例子:
// JavaScript 对象
var person = {
name: "John",
age: 30,
isDeveloper: true
};
// 转换为 JSON 字符串
var jsonString = JSON.stringify(person);
// 输出 JSON 字符串
console.log(jsonString); // {"name":"John","age":30,"isDeveloper":true}
// 转换回 JavaScript 对象
var jsonParse = JSON.parse(jsonString);
// 输出 JavaScript 对象
console.log(jsonParse); // { name: 'John', age: 30, isDeveloper: true }
JSON与XML是可选的数据交换格式,但JSON相对XML来说更加轻量,易于解析,并且不需要结束标签,也更适合现代的Web应用。