JSON 常见语法错误
JSON 规则比 JavaScript 对象字面量更严格。遇到解析错误时,不要只盯着报错字符;真正的问题经常出现在它前面的引号、逗号或转义符。
属性名和字符串必须使用双引号
错误
正确
{'name': '简工箱'}正确
{"name": "简工箱"}标准 JSON 不接受单引号,也不接受省略引号的属性名。复制 JavaScript 配置到 JSON 文件时,这是最常见的差异。
最后一项后面不能保留逗号
错误
正确
{"enabled": true,}正确
{"enabled": true}部分编程语言允许尾随逗号,但 JSON 标准不允许。自动生成 JSON 时,应让序列化库负责逗号,而不是手工拼接字符串。
换行、反斜杠和双引号需要转义
字符串内部的双引号写作 \",反斜杠写作 \\,换行写作 \n。Windows 路径中的反斜杠尤其容易导致无效转义,例如应写成 "D:\\work\\file.txt"。
| 问题 | 错误示例 | 正确方向 |
|---|---|---|
| 加入注释 | {"a": 1 // comment} | JSON 不支持注释;把说明放到独立字段或文档。 |
| 使用特殊数字 | {"value": NaN} | JSON 只支持有限数字,必要时使用 null 或字符串并约定含义。 |
| 布尔值大小写错误 | {"ok": True} | 必须使用小写 true 或 false。 |
| 括号不配对 | {"items": [1, 2} | 数组用方括号闭合,对象用花括号闭合。 |
推荐排查顺序
- 先格式化并记录首个错误位置。
- 向前检查最近的引号、反斜杠和逗号。
- 确认对象、数组括号是否配对。
- 检查是否混入注释、
undefined、NaN等非 JSON 值。 - 修复首个错误后重新解析,不要一次猜测所有问题。
常见问题
格式化会改变字段顺序吗?
本站工具使用浏览器解析与序列化,现代环境通常保留常规对象键顺序,但业务逻辑不应依赖 JSON 对象字段顺序。
压缩 JSON 会损失数据吗?
压缩只移除语法上不必要的空白,不应改变解析后的值。字符串内部空格不会被删除。