第 5 课
常见 JSON 错误
尾逗号、注释、单引号等高频错误与纠正方法。
无效 JSON 通常在解析阶段就会失败。熟悉下列模式,能更快排查 API 联调或配置文件中的问题。
尾逗号
{
"a": 1,
"b": 2,
}
JavaScript 允许 2 后面的逗号;JSON 不允许。请删除 } 或 ] 前的多余逗号。
单引号
{ 'name': 'Ada' }
JSON 字符串 必须 使用双引号 "。
未加引号的键
{ name: "Ada" }
键也是字符串,必须写成:{ "name": "Ada" }。
注释
// JSON 中不允许
{ "x": 1 }
说明文档应放在 README 或 JSON Schema 中,不要写在 JSON 正文里。
非法字面量
True/False— 应为小写true/falseundefined— 省略该属性或使用nullNaN、Infinity— 不是合法 JSON 数字
智能引号与不可见字符
从 Word 或网页复制可能带入 " " 而非 "。编辑器还可能插入 BOM 或不换行空格。若报错位置难以理解,可重新输入引号,或经纯文本编辑器粘贴。
来自 JavaScript 的「几乎 JSON」
从控制台复制对象时,输出可能像 JSON,却包含函数、未加引号的键或 undefined。在当作 JSON 使用前,应通过严格解析器校验。
排查步骤
- 查看解析器报错的行与列。
- 检查闭合括号上一行是否有多余逗号。
- 确认字符串与键均使用
"。 - 删除注释及 JavaScript 专有语法。
这些规则故意设计得很严格——严格性正是 JSON 跨系统可移植的原因。