JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
### 基本结构
JSON的基本结构包括两种:
1. **对象(Object)**:一个无序的“‘名称/值’对”集合。一个对象以左花括号`{`开始,以右花括号`}`结束。每个“名称”后跟一个`:`(冒号);“‘名称/值’ 对”之间使用`,`(逗号)分隔。
示例:
{
"name": "John Doe",
"age": 30,
"isStudent": false
}
2. **数组(Array)**:是值(value)的有序集合。一个数组以左方括号`[`开始,以右方括号`]`结束。值之间使用`,`(逗号)分隔。
示例:
[
"apple",
"banana",
"cherry"
]
### 数据类型
JSON支持以下数据类型:
- **字符串(String)**:由双引号包围的任意数量Unicode字符的集合,可以使用反斜杠转义。
- **数字(Number)**:整数或浮点数。
- **对象(Object)**:如上所述。
- **数组(Array)**:如上所述。
- **布尔值(Boolean)**:`true` 或 `false`。
- **null**:空值。
### 示例
结合对象和数组:
{
"name": "John Doe",
"hobbies": [
"reading",
"cycling",
"hiking"
],
"isEmployed": true,
"address": {
"street": "123 Elm St",
"city": "Somewhere",
"state": "CA",
"zip": "12345"
}
}
### 解析和生成JSON
- **解析JSON**:大多数编程语言都提供了库或函数来解析JSON字符串。例如,在JavaScript中,可以使用`JSON.parse()`方法将JSON字符串转换为JavaScript对象;在Python中,可以使用`json.loads()`函数。
- **生成JSON**:同样,大多数编程语言也提供了将数据结构转换为JSON字符串的方法。例如,在JavaScript中,可以使用`JSON.stringify()`方法;在Python中,可以使用`json.dumps()`函数。
### 结论
理解JSON数据源格式是处理现代Web应用和API数据时的一项基本技能。通过掌握JSON的基本结构、数据类型以及如何在不同编程语言中解析和生成JSON,可以更有效地与数据交互。