在JavaScript中,JSON(JavaScript Object Notation,即JavaScript对象表示法)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于语言的文本格式来存储和表示数据。简单说,JSON是一种数据格式,不是一种编程语言,虽然它具有相同的语法形式,但它遵循的是JavaScript的语法规则。
JSON的构建基于两种结构:
-
“名称/值”对的集合:
- 各种不同的名称与值以冒号(
:
)进行分隔。 - 每个“名称/值”对之间使用逗号(
,
)分隔,整体用大括号({}
)包围。 - 例如:
{"name": "John", "age": 30, "city": "New York"}
。
- 各种不同的名称与值以冒号(
-
值的有序列表:
- 使用方括号(
[]
)包含,并通过逗号(,
)分隔各个值。这些值可以是数字、字符串、布尔值、null、对象或数组。 - 例如:
["apple", "banana", "orange"]
或[{ "name": "John", "age": 30 }, { "name": "Jane", "age": 25 }]
。
- 使用方括号(
JSON具有以下特性:
- 易于人阅读和编写:JSON采用完全独立于语言的文本格式,但也易于机器解析和生成。
- 易于机器解析和生成:JSON格式在多种编程语言中都有库支持其解析和生成。
- 轻量级:JSON相较于XML,其数据格式更加简洁,所占用的带宽更少。
在JavaScript中,JSON对象提供了两个静态方法:JSON.stringify()
和JSON.parse()
。
JSON.stringify(value[, replacer[, space]])
:该方法可以将一个JavaScript值(通常为对象或数组)转换为一个JSON字符串。JSON.parse(text[, reviver])
:该方法可以解析一个JSON字符串,并构造由字符串描述的JavaScript值或对象。
例如:
// 将JavaScript对象转换为JSON字符串
let obj = { name: "John", age: 30, city: "New York" };
let jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出: {"name":"John","age":30,"city":"New York"}// 将JSON字符串解析为JavaScript对象
let parsedObj = JSON.parse(jsonString);
console.log(parsedObj.name); // 输出: John
JSON已成为一种广泛使用的数据交换格式,特别是在Web开发中,它常用于在客户端和服务器之间传输数据。