如何格式化或校验 JSON?
粘贴 JSON,工具就会按你选的缩进美化输出,或把它压缩成一行,并在存在语法错误时报告第一个错误的确切位置。解析使用 JavaScript 自带的 JSON 解析器,所以输出必然合法。
完全在浏览器内运行 · 不上传 · 不需要账号 · 无水印
- 把 JSON 粘贴进左边的框。
- 选择缩进,或用“压缩”把它变成一行。
- 复制结果,或修改工具指出的错误。
这个页面能做什么
- 按 2 空格、4 空格或制表符美化输出
- 压缩成一行
- 报告第一个语法错误的行号和列号
- 排序键名,并可转义非 ASCII 字符
什么时候该用这个工具
- 阅读一段被压缩过的接口响应或一行的配置文件。
- 在把 JSON 粘贴到别处之前,找出括号或逗号错误。
- 为请求体压缩 JSON。
什么时候不该用
- 数据有几十兆 —— 它会在主线程上被完整地解析进内存。
- 你需要 JSON5、注释、尾随逗号或结构校验。
- 你需要 jq 式的查询、对比或变换。
和其他方案比,差在哪
编辑器、jq 和命令行校验器能流式处理大文件、按结构校验、保留注释,并用精确的源码范围解释错误。本页调用浏览器的 JSON.parse,并如实报告引擎给出的信息,而它并不总是点出真正引发问题的那个字符。它是把一段响应变得可读的快捷方式,而不是一个 JSON 工作台。
你的文件去了哪里
哪儿也没去。这个页面只加载了干活的代码,之后你打开的文件由你自己的浏览器读取。没有上传步骤,没有临时服务器副本,也没有需要你信任的清理流程——数据从未经过网络,所以事后没有任何东西需要删除。你可以自己确认:在工具运行时打开浏览器的网络面板,看它一直安静。
关于这个工具的问题
- 为什么解析器拒绝一段在我的代码里能跑的 JSON?
- JSON 是 JavaScript 的一个更严格的子集。它不允许注释、尾随逗号、单引号字符串、不带引号的键名,也不允许 NaN 和 Infinity 这两个值。如果你粘贴的是 JavaScript 对象字面量,请给键名加上引号、删掉注释并去掉尾随逗号 —— 工具会告诉你第一个问题在第几行,省得你在文件里到处找。
- 排序键名会改变我的数据吗?
- 不会,只改变对象键名书写的顺序。值不受影响,数组也保持原有顺序,因为数组的顺序是有意义的。当你想让两份 JSON 文档无论各自如何生成都能干净地对比时,排序就很有用。
- 我粘贴的 JSON 会被发送到哪里吗?
- 不会。解析和格式化使用的是本页里已经在运行的 JavaScript 引擎,文本始终不离开这个标签页。你可以打开开发者工具的网络面板,看着它在你格式化的过程中一直保持空白。