input.json · editing
output.json · 2-space
粘贴 JSON 并点击校验检查语法。

严格的 JSON 语法校验

把文档粘进来,点 Validate。工具按严格的 JSON 语法规则检查,报告第一处错误的行号和列号,把编辑器定位到那附近;解析成功时还会顺手格式化。整个校验在浏览器里完成。

文本在语法上是合法 JSON,结果就算通过。但这不代表字段和你的 API 对得上,不代表值是可靠的,也不代表文档符合某份 JSON Schema。

校验失败了怎么查

  1. 看报告的行列号,但同时也看看上一行 —— 漏掉的引号或括号,常常让下一个 token 背锅。
  2. 确认这段文本本来是不是 JSON。JavaScript 对象字面量、JSONC、Python 字典和 YAML 各有各的规则。
  3. 源头在你手上就直接改源头。如果只拿到了坏掉的文本,用 JSON Fix 修,然后逐条确认它给出的修复。
  4. 重新校验,再拿解析出的结构去对接收方应用的约定。

常见的语法错误

  • 单引号 —— JSON 要求字符串和键都用双引号
  • 尾随逗号 —— 对象或数组的最后一项后面不能再跟逗号
  • 没加引号的键 —— 每个对象键都必须是双引号字符串
  • 注释 —— // 行注释/* 块注释 */ 都不是合法 JSON
  • Python 字面量 —— TrueFalseNone 必须写成 truefalsenull
  • 多余的文本 —— 一份 JSON 文档只包含一个顶层值,不能并排放两个值,也不能夹一句说明文字
  • 非法转义 —— 字符串里的反斜杠必须开启一个 JSON 支持的转义序列,所以没转义的 Windows 路径经常在这里翻车

语法校验 vs schema 校验

语法校验回答的是"这份文档能不能被解析"。schema 校验才能回答 email 是不是必填、age 是不是数字、status 是否属于允许的取值集合、是否禁止额外属性。生产环境的边界上,通常两种检查都需要。

数字要格外小心:一个语法完全合法的大整数,被 JavaScript 解析时可能已经超出安全整数范围。需要精确位数的标识符,写成 JSON 字符串通常更稳妥。

FAQ

校验和解析 JSON 有什么区别?

解析返回一个你的程序可以使用的值。语法校验只需要知道解析是否成功,所以可以把那个值丢掉。作为辅助,这个工具还会附带一份格式化后的版本方便你复核。

JSON 校验里的 "Unexpected token" 是什么意思?

解析器遇到了一个它没预期的字符或单词。可能是这个 token 本身不合法,也可能是更早的位置漏了分隔符,把解析器带偏了。

浏览器端的 JSON 校验安全吗?

客户端校验不会把粘贴的文档发给校验 API,这在隐私上确实是个好性质。但它不会让敏感数据本身变安全:该脱敏的还得脱敏,还要考虑浏览器扩展和设备安全,并遵守你所在组织的数据处理规范。