什么是 JSON?
JSON(JavaScript 对象表示法)是一种轻量级的、基于文本的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。它基于 JavaScript 语法的一个子集,但与编程语言无关。
快速了解
| 全称 | JavaScript 对象表示法 |
|---|---|
| 创建时间 | 2001 年由 Douglas Crockford 创建 |
| 规范文档 | 官方规范 |
工作原理
JSON 使用键值对和有序列表的简单结构来表示数据。对象用花括号 {} 包围,包含逗号分隔的键值对,其中键必须是双引号包围的字符串。数组用方括号 [] 包围,包含逗号分隔的值。JSON 支持六种数据类型:字符串、数字、布尔值(true/false)、null、对象和数组。与 XML 不同,JSON 没有闭合标签,使其更紧凑、解析更快。
主要特点
- 人类可读的文本格式,语法简洁
- 与编程语言无关,但使用 C 系语言熟悉的约定
- 支持嵌套数据结构(对象中的对象、数组中的数组)
- 官方规范不支持注释
- 严格的语法规则 - 键必须是双引号字符串
- 相比 XML,相同数据的文件体积更小
常见用途
- Web 服务中的 API 响应和请求(REST API)
- 应用程序和工具的配置文件
- NoSQL 数据库(如 MongoDB)中的数据存储
- Web 应用中客户端和服务器之间的数据交换
- 包管理文件(package.json、composer.json)
示例
Loading code...常见问题
JSON 和 JavaScript 对象有什么区别?
虽然 JSON 语法源自 JavaScript 对象表示法,但它们是不同的。JSON 是一种基于文本的数据格式,有严格的规则:键必须是双引号字符串,值只能是字符串、数字、布尔值、null、数组或对象。JavaScript 对象是运行时数据结构,可以包含函数、undefined 值,并且可以使用不带引号的键。
JSON 可以包含注释吗?
不可以,官方 JSON 规范不支持注释。但是,JSON5 和 JSONC(带注释的 JSON)等变体允许注释。如果您需要在配置文件中使用注释,可以考虑使用 YAML 或 JSON5,或者在解析前去除注释。
为什么 API 更倾向于使用 JSON 而不是 XML?
JSON 更受青睐有几个原因:它更紧凑(没有闭合标签)、在 JavaScript 和大多数语言中更容易解析、语法更简单、传输数据量更小。JSON 还可以直接映射到大多数编程语言的原生数据结构。
如何验证 JSON 数据?
您可以使用在线的 JSON 格式化工具验证 JSON 语法,或者通过编程使用 JSON.parse()(无效 JSON 会抛出错误)。要验证数据结构和类型,可以使用 JSON Schema,它定义了预期的格式、必需字段和数据类型。
常见的 JSON 解析错误有哪些,如何修复?
常见错误包括:尾随逗号(删除它们)、使用单引号而非双引号(使用双引号)、键没有引号(给所有键加引号)、特殊字符未转义(使用反斜杠转义)、元素之间缺少逗号。使用 JSON 验证器可以定位确切的错误位置。