如何格式化或校验 JSON?

粘贴 JSON,工具就会按你选的缩进美化输出,或把它压缩成一行,并在存在语法错误时报告第一个错误的确切位置。解析使用 JavaScript 自带的 JSON 解析器,所以输出必然合法。

完全在浏览器内运行 · 不上传 · 不需要账号 · 无水印

  1. 把 JSON 粘贴进左边的框。
  2. 选择缩进,或用“压缩”把它变成一行。
  3. 复制结果,或修改工具指出的错误。

这个页面能做什么

什么时候该用这个工具

  • 阅读一段被压缩过的接口响应或一行的配置文件。
  • 在把 JSON 粘贴到别处之前,找出括号或逗号错误。
  • 为请求体压缩 JSON。

什么时候不该用

  • 数据有几十兆 —— 它会在主线程上被完整地解析进内存。
  • 你需要 JSON5、注释、尾随逗号或结构校验。
  • 你需要 jq 式的查询、对比或变换。

和其他方案比,差在哪

编辑器、jq 和命令行校验器能流式处理大文件、按结构校验、保留注释,并用精确的源码范围解释错误。本页调用浏览器的 JSON.parse,并如实报告引擎给出的信息,而它并不总是点出真正引发问题的那个字符。它是把一段响应变得可读的快捷方式,而不是一个 JSON 工作台。

你的文件去了哪里

哪儿也没去。这个页面只加载了干活的代码,之后你打开的文件由你自己的浏览器读取。没有上传步骤,没有临时服务器副本,也没有需要你信任的清理流程——数据从未经过网络,所以事后没有任何东西需要删除。你可以自己确认:在工具运行时打开浏览器的网络面板,看它一直安静。

关于这个工具的问题

为什么解析器拒绝一段在我的代码里能跑的 JSON?
JSON 是 JavaScript 的一个更严格的子集。它不允许注释、尾随逗号、单引号字符串、不带引号的键名,也不允许 NaN 和 Infinity 这两个值。如果你粘贴的是 JavaScript 对象字面量,请给键名加上引号、删掉注释并去掉尾随逗号 —— 工具会告诉你第一个问题在第几行,省得你在文件里到处找。
排序键名会改变我的数据吗?
不会,只改变对象键名书写的顺序。值不受影响,数组也保持原有顺序,因为数组的顺序是有意义的。当你想让两份 JSON 文档无论各自如何生成都能干净地对比时,排序就很有用。
我粘贴的 JSON 会被发送到哪里吗?
不会。解析和格式化使用的是本页里已经在运行的 JavaScript 引擎,文本始终不离开这个标签页。你可以打开开发者工具的网络面板,看着它在你格式化的过程中一直保持空白。

同组的其他工具

使用指南