📋 JSON 入门指南:从零开始理解 JSON 数据格式
发布于 2026 年 8 月 · 阅读约 5 分钟
什么是 JSON?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它由 Douglas Crockford 在 2001 年提出,设计灵感来源于 JavaScript 的对象字面量语法,但现在已经独立于任何编程语言,成为互联网上最通用的数据格式标准。
根据 JSON 官网的描述,JSON 易于人类阅读和编写,也易于机器解析和生成。相比早期的 XML 格式,JSON 更加简洁:同样的数据结构,JSON 的体积通常只有 XML 的三分之一到一半,这也是它迅速取代 XML 成为 Web API 主流数据格式的重要原因。
JSON 的基本语法
JSON 只支持六种数据类型,理解它们就掌握了 JSON 的全部语法:
- 对象(Object) — 用花括号 {} 包裹,包含一组键值对,例如
{"name": "张三"} - 数组(Array) — 用方括号 [] 包裹,包含一组有序的值,例如
[1, 2, 3] - 字符串(String) — 用双引号包裹的 Unicode 文本,例如
"hello" - 数字(Number) — 整数或浮点数,例如
42或3.14 - 布尔值(Boolean) — 只有
true和false两个值 - null — 表示空值
JSON 对象中的键名必须用双引号包裹,这是初学者最容易忽略的规则。JavaScript 对象允许单引号或裸键名,但 JSON 严格要求双引号。
一个完整的 JSON 示例
{
"user": {
"id": 1001,
"name": "张三",
"isActive": true,
"email": null,
"skills": ["JavaScript", "Python", "SQL"],
"address": {
"city": "北京",
"zip": "100000"
}
}
}
这个示例展示了对象嵌套、数组、字符串、数字、布尔值和 null 的组合使用。在实际的 API 响应中,数据结构通常比这更复杂,但基本语法都是一样的。
JSON 的主要应用场景
1. Web API 数据传输
前后端分离架构中,后端通过 RESTful API 或 GraphQL 返回 JSON 数据,前端 JavaScript 使用 JSON.parse() 解析后渲染到页面。这是 JSON 最广泛的应用。
2. 配置文件
现代开发工具大量使用 JSON 作为配置文件格式:Node.js 的 package.json、TypeScript 的 tsconfig.json、ESLint 的 .eslintrc.json、VS Code 的 settings.json 等。
3. 数据存储与交换
NoSQL 数据库如 MongoDB 直接使用类似 JSON 的文档格式存储数据。数据导入导出、不同系统之间的数据交换也常使用 JSON 作为中间格式。
4. 日志与监控
结构化日志以 JSON 格式输出,便于日志分析系统(如 ELK Stack)自动解析和检索。
JSON 常见错误与解决方法
错误一:键名使用单引号
{'name': '张三'} 是无效的 JSON。必须改为 {"name": "张三"}。JavaScript 对象和 JSON 的最大区别就在这里。
错误二:末尾多余逗号
{"a": 1, "b": 2,} 中最后一个元素后面的逗号是无效的。数组也一样,最后一个元素后不能有逗号。
错误三:注释
JSON 不支持注释。如果你需要在配置文件中写注释,可以考虑使用支持注释的 JSONC(JSON with Comments)格式,但标准 JSON 中不能有注释。
错误四:字符串中的未转义字符
字符串中的双引号和反斜杠需要转义:"他说:\"你好\""。换行符需要用 \n 表示,不能直接在字符串中换行。
如何检查 JSON 是否合法
当你手写或修改 JSON 数据时,很容易出现语法错误。使用我们的 JSON 格式化/校验工具,粘贴内容后工具会自动检查语法并定位错误位置。格式化功能还能将压缩的 JSON 变成易读的缩进格式,方便排查问题。
JSON 与 JavaScript 对象的区别
| 特性 | JSON | JavaScript 对象 |
|---|---|---|
| 键名 | 必须双引号 | 可省略引号或单引号 |
| 函数 | 不支持 | 支持 |
| 注释 | 不支持 | 支持 |
| undefined | 不支持 | 支持 |
| 用途 | 数据交换 | 程序内部结构 |
小结
JSON 是每一位开发者都应该熟练掌握的基础格式。掌握了它的六种数据类型和严格的语法规则,你就能轻松阅读和编写任何 JSON 数据。如果遇到格式问题,随时可以使用本站的 JSON 工具进行格式化和校验。