JSON 解析错误通常意味着什么
解析错误说明文本不符合 JSON 语法,但不一定代表 payload 的想法本身有问题。大多数错误来自属性之间缺少逗号、最后一项后面有尾随逗号、使用单引号而不是双引号,或字符串内部引号没有转义。
如何缩小问题范围
先校验完整文本。如果错误信息指向某一行或字符,除了该位置,也要检查它前面的 token。JSON parser 常在结构第一次变得不可能的位置失败,而这可能位于真正错误之后。
- 检查上一个属性是否缺少逗号。
- 移除数组或对象最后一项之后的尾随逗号。
- 用反斜杠转义字符串内部的引号。
- 确认复制示例没有包含注释、智能引号或隐藏字符。
语法有效之后还要做什么
解析成功后,还需要继续做应用层校验。有效 JSON 仍可能缺少必填字段、把数字写成字符串、使用错误日期格式,或表示 API 不允许的状态。
常见问题
为什么 JSON parser 指向的位置可能在真正错误之后?
解析器通常在结构已经不可能继续成立的位置失败,这可能位于真正缺失逗号、引号或括号的下一个 token。
JSON 中可以写注释吗?
不可以。一些配置格式允许注释,但标准 JSON 不允许。校验或发送到 API 前应先移除注释。
有效 JSON 是否代表 payload 符合 API 契约?
不是。有效 JSON 只说明语法可以解析。必填字段、允许值和数据类型仍需要契约或应用层校验。