如何验证 JSON:常见错误和修复方法
你的 API 返回 400 错误。日志显示"无效 JSON"。你盯着载荷看,一切似乎都对——直到你发现了隐藏在第 47 行的那个单引号。JSON 验证错误令人沮丧,恰恰是因为它们往往是破坏一切的微小错误。
最常见的 JSON 语法错误
1. 尾随逗号
JSON 中排名第一的错误。JavaScript 接受尾随逗号,所以开发者把这个习惯带到了不允许尾随逗号的 JSON 中。
{
"name": "Alex",
"age": 30
}
删除最后一个值后面的逗号。始终如此。
2. 单引号代替双引号
JSON 要求使用双引号。这在 JavaScript 中有效但在 JSON 中无效:{'name': 'Alex'}。将所有单引号替换为双引号。
3. 未加引号的键
JSON 中的每个键都必须是带引号的字符串。{name: "Alex"} 应该是 {"name": "Alex"}。
4. 元素之间缺少逗号
手动编辑 JSON 时容易遗漏——忘记键值对之间的逗号。
5. 括号不匹配
用 { 打开但用 ] 关闭,或嵌套不正确。使用能高亮显示匹配括号的 JSON 验证器。
如何有效验证 JSON
快速手动验证
将你的 JSON 粘贴到我们的 JSON 验证器。它会高亮显示任何错误的确切行和字符位置。所有处理都在你的浏览器中完成——你的数据永远不会离开你的机器。
编程验证
对于应用程序,在每个边界验证 JSON。在 JavaScript 中,将 JSON.parse() 包装在 try-catch 中。在 Python 中,使用 json.loads() 配合异常处理。
模式验证
语法验证告诉你 JSON 格式是否正确。模式验证告诉你它是否有正确的结构。使用我们的 JSON Schema 验证器 定义预期的数据形状。
逐步调试 JSON 错误
- 先格式化 — 粘贴到 JSON 格式化工具 获得正确的缩进
- 检查错误位置 — 大多数解析器会报告行号和列号
- 查找常见嫌疑 — 尾随逗号、单引号、未加引号的键
- 增量验证 — 对于大型 JSON,分段验证
- 比较版本 — 使用 JSON Diff 与正常工作的版本对比
设置自动化验证
在编辑器中
启用 JSON 语法高亮、代码检查器和配置文件的模式验证。
在 CI 管道中
将 JSON 验证添加到构建流程中,在合并前捕获错误。
在 API 中
永远不要信任传入的 JSON。在 API 边界同时验证语法和模式。返回有帮助的错误信息。
常见问题
JSON 验证和 JSON Schema 验证有什么区别?
JSON 验证检查语法(正确的引号、括号、逗号)。JSON Schema 验证检查结构——正确的字段、正确的类型、正确的约束。
为什么我的 JSON 在 JavaScript 中工作但在其他解析器中失败?
JavaScript 比 JSON 规范更宽松。它允许尾随逗号、单引号和注释。严格的解析器会拒绝所有这些。
相关资源
- JSON 格式化最佳实践 — 从一开始就写出更干净的 JSON
- JSON Schema 验证指南 — 强制执行数据契约
- JSON 验证器工具 — 即时验证 JSON 语法
- JSON 格式化工具 — 美化和修复 JSON 格式