JSON校验器是一个在浏览器里跑的格式检查工具,把一段文本粘进去,它按 RFC 8259 的语法规则逐字符解析,遇到问题立刻标出行列号和原因。典型场景:后端接口返回一段 2.3KB 的 JSON,前端 JSON.parse 报 "Unexpected token } in JSON at position 1874",你只知道位置却看不出哪里多了个逗号——粘进这个工具,它会直接指出第 42 行第 18 列存在尾随逗号。除了校验,它还能把压缩成一行的 JSON 按 2 空格缩进展开、把带缩进的 JSON 压成单行,以及用树形结构折叠查看嵌套层级,适合调试 API 响应、检查配置文件、核对数据导出结果。
| 对比维度 | 本工具 | 手工/替代做法 |
|---|---|---|
| 定位错误耗时 | 粘贴后 <0.1 秒显示行列号和原因 | 肉眼逐行数括号,2KB 文件平均要 3-5 分钟 |
| 缩进格式 | 支持 2/4 空格、Tab 三种缩进,一键切换 | 手动敲空格,容易多一个少一个,改一次要重排全文 |
| 嵌套查看 | 树形结构可折叠,10 层嵌套也能逐层展开 | 在编辑器里靠缩进判断层级,超过 5 层就看不清 |
| 隐私 | 全部在浏览器本地解析,数据不上传 | 用在线工具需上传到服务器,敏感配置有泄露风险 |
| 大文件 | 10MB 约 1-2 秒,50MB 以上可能卡顿 | 命令行 jq 处理 100MB 约 3 秒,但需要装环境 |
不允许。RFC 8259 明确规定 JSON 不支持 // 或 /* */ 注释,粘进去会直接报 "Unexpected token /"。如果配置文件需要注释,可以改用 JSON5 或 JSONC,但标准 JSON.parse 会拒绝。常见变通做法是在对象里加一个 "_comment" 字段存说明文字,代价是解析后多一个键。
JSON 语法规定数组和对象的最后一个元素后面不能有逗号。{"a":1,} 和 [1,2,] 都会报 "Trailing comma"。JavaScript 对象字面量允许尾随逗号,所以从 JS 代码里复制出来的对象经常带这个问题。删掉最后一个逗号即可,工具会精确标出是第几个字符。
没有硬性上限,但受浏览器内存限制。实测 10MB 左右的 JSON 在 8GB 内存的机器上解析约 1-2 秒,超过 50MB 可能出现卡顿甚至标签页崩溃。如果文件超过 100MB,建议用命令行工具 jq 或 Python 的 json.load 处理,它们对内存更友好。
不会。工具按 UTF-8 解码后逐字符解析,中文字符、emoji 都作为合法字符串内容处理。但要注意 JSON 字符串里的双引号和反斜杠必须转义,比如路径 C:\Users 要写成 "C:\\Users",否则会报 "Bad escaped character"。行列号按 Unicode 码点计算,一个 emoji 算 1 列。
校验阶段只做语法检查,不改动数字。但如果你用 JavaScript 的 JSON.parse 读取,超过 2^53-1(即 9007199254740991)的整数会丢精度,比如 12345678901234567890 会变成 12345678901234567000。需要精确大整数时,应把数字写成字符串 "12345678901234567890" 再自行转换。
json-formatter 侧重把压缩 JSON 排版成易读格式,校验只是附带;本工具侧重语法检查和错误定位,会精确报告行列号、错误类型和上下文。两者都支持美化和压缩,但如果你拿到一段报错的 JSON 想快速找到问题,用本工具更直接;如果只是想把一行 JSON 变好看,json-formatter 的缩进选项更多。
本工具按 RFC 8259 标准做语法校验,不检查业务字段是否缺失、类型是否符合预期。行列号从 1 开始计数,列按 Unicode 码点算,一个 emoji 算 1 列。所有解析在浏览器本地完成,输入内容不会发送到任何服务器,关掉标签页即清空。注意:校验通过只代表语法合法,不代表数据内容正确,比如 {"age":-5} 语法没问题但年龄为负可能是业务错误。