JSON 在线校验器
在本地检查 JSON 语法,定位出错的确切行列,校验通过后还能看到格式整齐的结果。
input.json · editing
output.json · 2-space
严格的 JSON 语法校验
把文档粘进来,点 Validate。工具按严格的 JSON 语法规则检查,报告第一处错误的行号和列号,把编辑器定位到那附近;解析成功时还会顺手格式化。整个校验在浏览器里完成。
文本在语法上是合法 JSON,结果就算通过。但这不代表字段和你的 API 对得上,不代表值是可靠的,也不代表文档符合某份 JSON Schema。
校验失败了怎么查
- 看报告的行列号,但同时也看看上一行 —— 漏掉的引号或括号,常常让下一个 token 背锅。
- 确认这段文本本来是不是 JSON。JavaScript 对象字面量、JSONC、Python 字典和 YAML 各有各的规则。
- 源头在你手上就直接改源头。如果只拿到了坏掉的文本,用 JSON Fix 修,然后逐条确认它给出的修复。
- 重新校验,再拿解析出的结构去对接收方应用的约定。
常见的语法错误
- 单引号 —— JSON 要求字符串和键都用双引号
- 尾随逗号 —— 对象或数组的最后一项后面不能再跟逗号
- 没加引号的键 —— 每个对象键都必须是双引号字符串
- 注释 ——
// 行注释和/* 块注释 */都不是合法 JSON - Python 字面量 ——
True、False、None必须写成true、false、null - 多余的文本 —— 一份 JSON 文档只包含一个顶层值,不能并排放两个值,也不能夹一句说明文字
- 非法转义 —— 字符串里的反斜杠必须开启一个 JSON 支持的转义序列,所以没转义的 Windows 路径经常在这里翻车
语法校验 vs schema 校验
语法校验回答的是"这份文档能不能被解析"。schema 校验才能回答 email 是不是必填、age 是不是数字、status 是否属于允许的取值集合、是否禁止额外属性。生产环境的边界上,通常两种检查都需要。
数字要格外小心:一个语法完全合法的大整数,被 JavaScript 解析时可能已经超出安全整数范围。需要精确位数的标识符,写成 JSON 字符串通常更稳妥。
FAQ
校验和解析 JSON 有什么区别?
解析返回一个你的程序可以使用的值。语法校验只需要知道解析是否成功,所以可以把那个值丢掉。作为辅助,这个工具还会附带一份格式化后的版本方便你复核。
JSON 校验里的 "Unexpected token" 是什么意思?
解析器遇到了一个它没预期的字符或单词。可能是这个 token 本身不合法,也可能是更早的位置漏了分隔符,把解析器带偏了。
浏览器端的 JSON 校验安全吗?
客户端校验不会把粘贴的文档发给校验 API,这在隐私上确实是个好性质。但它不会让敏感数据本身变安全:该脱敏的还得脱敏,还要考虑浏览器扩展和设备安全,并遵守你所在组织的数据处理规范。