JSON 验证器

按 RFC 8259 语法验证 JSON,精确显示错误所在的行、列和原因,并提供重复键警告和结构统计。

完全在浏览器中运行,您的数据不会被上传。

相关工具

查看全部

什么是 JSON 验证?

JSON 验证器按照 RFC 8259 检查文本是否为有效的 JSON。输入无效时,它会显示第一个错误的行号和列号、用通俗语言写出的原因,以及带插入符标记的出错源码行。输入有效时,它会汇总结构信息并对重复键给出警告。

如何使用 JSON 验证

  1. 把 JSON 粘贴到输入框中。
  2. 点击 验证(输入时结果也会同步更新)。
  3. 如果有错误,查看行号、列号和高亮的源码行,修正后再次验证。
  4. JSON 有效时,查看摘要(根类型、对象、数组和值的数量、嵌套深度)以及重复键警告。

示例

输入
{
  "a": 1
  "b": 2
}
输出
Line 3, column 3 – Expected "," or "}" after the property value

错误信息下方会显示源码行,并在“b”下面用插入符标出位置。

何时使用 JSON 验证

适合在提交配置文件之前、API 拒绝你的请求体时,或者 JSON.parse 只告诉你“Unexpected token”时使用。它只检查语法;如果要检查数据的字段和类型是否正确,请使用 JSON Schema 验证器。JSON5/JSONC 文件会被判定为无效。

JSON 验证 的工作原理

严格的递归下降解析器逐字符读取文本并跟踪当前位置。凡是 JSON 语法禁止的内容都会被拒绝,包括单引号、注释、末尾逗号、前导零、NaN、未转义的控制字符以及根值之后的多余内容,并报告发现问题的位置。解析成功后,它会遍历语法树,统计对象、数组和标量值的数量并计算嵌套深度。同一个对象里出现两次的键会连同位置一起报告,因为大多数解析器会悄悄只保留最后一个值。

常见用例

  • 找出 API 对 JSON 请求体返回 400 Bad Request 的原因
  • 检查手工编辑的 package.json 或类似 tsconfig 的文件(不含注释)
  • 发现会悄悄覆盖值的重复键
  • 学习 JSON 的精确语法规则

安全提示

所有处理都在你的浏览器本地完成,粘贴的代码不会被上传。

常见问题

允许使用注释吗?

不允许。JSON 没有注释语法,// 和 /* */ 都会被报告为错误。

为什么重复键只是警告?

RFC 规定名称“应该”唯一,但并没有把重复视为无效。大多数解析器会保留最后一个值,这往往会掩盖错误。

它会按 schema 验证吗?

不会,它只检查语法。结构规则请使用 JSON Schema 验证器。

列号按字符还是字节计算?

按字符(UTF-16 代码单元)计算,从 1 开始。

探索更多分类