JSON 是程序之间传递数据的通用格式,长这样:{"name": "张三", "age": 20}。接口返回、配置文件、前后端通信——只要和开发沾边就绕不开它。JSON 报错 90% 拔不出五种原因:单引号、尾逗号、中文引号、键没加引号、混入注释。本文 6 分钟讲清语法规则和报错排查法。
JSON 语法 6 条铁律
- 键必须用英文双引号:
{name: "张三"}是错的,{"name": "张三"}才对; - 字符串只能用双引号:单引号
'张三'不合法(JavaScript 里合法,JSON 里不行——最常见的坑); - 不能有尾逗号:
[1, 2, 3,]报错; - 不能用中文引号:从 Word 或聊天窗口复制出来的
" "必须换成" "; - 没有注释:标准 JSON 不支持 // 或 /* */ 注释;
- 值只有 6 种类型:字符串、数字、布尔(true/false)、null、对象 {}、数组 []。函数、undefined、日期对象都不存在。
报错排查:别用肉眼找
一个 500 行的 JSON 少个逗号,肉眼找半小时。正确做法是用带错误定位的格式化工具:粘贴进去,工具直接告诉你第几行第几列出错,一键美化后结构一目了然(对象可折叠成树形浏览)。排查完如果需要减小体积,再一键压缩回单行。
格式化 vs 压缩:同一数据的两种形态
| 形态 | 样子 | 用途 |
|---|---|---|
| 格式化(美化) | 带缩进换行 | 人读、排查、编辑 |
| 压缩(单行) | 无空白 | 传输、存储、日志输出 |
两者可随时互转,数据内容不变。
3 个进阶小知识
- JSON vs XML:XML 标签冗长、解析繁琐,现代接口几乎全面转向 JSON;XML 仍在文档领域(如 Office 文件内部)使用;
- JSON5 / JSONC:允许注释和尾逗号的"宽松版 JSON",VSCode 的 settings.json 就是 JSONC——但纯 JSON 解析器不认;
- 超大 JSON:浏览器内处理受内存限制,几十 MB 的 JSON 格式化没问题,数百 MB 建议本地脚本(如 Python 的 json 模块)流式处理。
JSON 格式化工具
美化/压缩/转义,报错精确定位到行列,支持树形浏览,本地处理
格式化 JSON