常见 JSON 解析错误与修复方法
JSON 报错通常不是因为格式复杂,而是因为一两个字符不符合规范。下面按照实际开发中最常见的顺序整理排查方法。
1. 尾随逗号
对象或数组最后一项后面的逗号在 JSON 中非法。
// 错误
{"name": "张三", "age": 28,}
// 正确
{"name": "张三", "age": 28}
2. 使用单引号
JSON 的键名和字符串值都必须使用双引号。
// 错误
{'name': '张三'}
// 正确
{"name": "张三"}
3. 键名没有加双引号
这是从 JavaScript 对象复制到 JSON 时最常见的问题。
// 错误
{name: "张三", age: 28}
// 正确
{"name": "张三", "age": 28}
4. 字符串中的双引号没有转义
字符串内部出现双引号时,需要写成 \"。
// 错误
{"message": "他说 "你好""}
// 正确
{"message": "他说 \"你好\""}
5. 使用 JSON 不支持的值
undefined、NaN、Infinity、函数和日期对象都不是合法 JSON 值。缺省值通常用 null,日期通常用 ISO 8601 字符串。
6. 注释被复制进 JSON
标准 JSON 不支持 // 或 /* */ 注释。如果你需要带注释的配置文件,可以选择 JSONC、YAML 或 TOML,但公开 API 响应应保持标准 JSON。
7. 括号不匹配
深层嵌套中最容易漏掉 } 或 ]。建议先格式化再检查缩进层级,最后用验证工具确认。
修复流程:先粘贴到 JSON 格式化工具,查看错误提示;再检查引号、逗号、括号和非法值;最后把修复后的 JSON 复制回代码或接口请求。