DevFormatLab

JSON 格式化

格式化 · 压缩 · 校验

在本地完成 JSON 的格式化、压缩与校验,错误位置精确到行列。

字号15px
278 字符
输入有效
输出Object · 7 keys
{{7}
"": "",
"": ,
"": ,
"": "",
"": [[1]
0{{3}
"": ,
"": "",
"":
}
],
"": "",
"":
}

你的 JSON 完全在浏览器内处理,不会上传到任何服务器。

什么是 JSON 格式化工具?

JSON 格式化工具(也叫 JSON 美化、JSON 校验工具)会把原始 JSON 文本——通常是从接口响应、日志或配置文件中复制出来的一长串——重新按统一缩进与换行排版,让人能快速阅读、审查和调试。优秀的格式化工具同时按 RFC 8259 校验语法,精确指出缺少的逗号、不匹配的括号、单引号字符串、非法转义所在的位置。需要反方向时,它还能把美化后的 JSON 压缩回紧凑的单行形式以节省传输体积。 DevFormatLab 的 JSON 格式化工具围绕「粘贴 → 美化 → 修复 → 压缩 → 上线」这条日常循环打造:支持 2 空格、4 空格、Tab 多种缩进;实时显示字符数与字节数;提供可切换的树视图,让你能折叠超长嵌套对象与数组,几秒内浏览一份 10000 行的响应;严格解析器会高亮任何语法错误的精确行列。整个流程没有上传、没有服务器往返——格式化通过浏览器内置的 JSON.parse 与 JSON.stringify 在本地运行,敏感数据(访问令牌、客户信息、内部接口响应)不会离开你的设备。页面加载一次后即可离线使用,因此在受限的企业内网或差旅途中都能放心使用。不管你是在调试 webhook、为单元测试准备 fixture、把配置片段嵌入 Markdown 文档,还是想读懂别人的 API,一个快速、私密的 JSON 格式化工具都应该常驻每个开发者的工具箱。

功能特性

  • 支持 2 / 4 空格 / Tab 多种缩进美化
  • 一键压缩(移除全部空白,通常可缩小 30–60%)
  • 严格 RFC 8259 校验,错误定位到具体行列
  • 可折叠树视图,轻松浏览超大嵌套结构
  • 实时字符与字节计数,掌握载荷大小
  • 复制 / 下载 / 应用到输入 等快捷操作,迭代飞快
  • 100% 客户端运行,加载后即可离线,零上传

使用步骤

  1. 在左侧输入面板粘贴原始或已美化的 JSON。文档可解析时顶部状态徽章会变绿。
  2. 选择缩进方式:2 空格是最常见(npm、GitHub、多数 API 文档);4 空格匹配 Python / PEP 8 风格;Tab 匹配 Go 等 gofmt 风格的配置。
  3. 需要紧凑的生产载荷或 URL 参数?点击「压缩」——所有换行与缩进会被移除,但值完全不变。
  4. 大文档建议切到树视图:点击折叠箭头展开 / 收起对象与数组,悬停查看路径提示,工具栏支持「全部展开 / 全部折叠」。
  5. 如果 JSON 不合法,底部会显示精确的解析错误(例如「Unexpected token } at line 7 column 3」)——点击可跳转到该位置。
  6. 用「复制」把结果发到剪贴板,「下载」存为 .json 文件,或者「应用到输入」把当前输出作为下一轮的输入(适合往返测试)。

常见问题

如何修复「SyntaxError: Unexpected token } in JSON at position 42」?

这条错误说明某个结构字符(通常是多余的逗号)出现在了 JSON 不允许的位置。点击输入面板下方的错误行号提示,光标会跳到出错位置。最常见的几种原因: • 多余的尾随逗号:{"a": 1, "b": 2,} → 删掉最后一个逗号 → {"a": 1, "b": 2} • 用了单引号:{'a': 1} → 改成双引号 → {"a": 1} • 键名没加引号:{a: 1} → 加上引号 → {"a": 1} • 写了注释:// 这段注释 → 删掉(确实需要注释请改用 JSON5) 修复后输入面板顶部的状态徽章会变绿,右侧立即出现格式化结果。

为什么提示「Unexpected end of JSON input」?

你的 JSON 被截断了——通常是少了结尾的 } 或 ]。错误提示中的 position 就是解析器读到末尾的位置。快速排查: • 用 Ctrl+F 数一下 { 和 } 的数量是否相等 • 检查文件末尾是否有多余逗号:[1, 2, 3, ← 删掉 • 如果是从终端复制的响应,确认没有被截断 修复后点击 Format,能成功解析就说明结构已经闭合。

「Bad escaped character in string」是什么意思?

JSON 字符串里只允许这些转义:\", \\, \/, \b, \f, \n, \r, \t 和 \uXXXX。其他写法(例如 \x41 或反斜杠后跟普通字母)都会被拒绝。 示例修复: {"path": "C:\Users\me"} ← 非法 {"path": "C:\\Users\\me"} ← 合法(每个反斜杠加倍) 如果你是在其他语言源码里嵌入 JSON,转义应该写在外层语言上,而不是混进 JSON 字符串。

如何压缩 JSON 以便用于生产环境 / 缩小载荷?

粘贴 JSON 后点击工具栏的 Minify 按钮,所有空白、换行和无意义零都会被移除,语义不变。输出面板下方会显示字符数,方便对比节省了多少字节。常见接口响应通常能压缩 30–60% 而不改变任何值。

支持 JSON5、JSONC 或注释吗?

暂不支持——DevFormatLab 严格遵循 RFC 8259。如果你的内容包含 // 或 /* */ 注释、尾随逗号,解析器会拒绝。临时解决: • 用正则去掉注释:/\/\/.*$/gm 和 /\/\*[\s\S]*?\*\//g • 或先用 JSON5 → JSON 的转换器处理 原生 JSON5 / JSONC 支持已在我们的路线图中。

我的 JSON 会被上传到服务器吗?

不会。所有解析、格式化、压缩都通过浏览器里的 JSON.parse / JSON.stringify 完成。页面加载一次后即可断网使用——你可以打开开发者工具的网络面板验证:处理 JSON 时不会产生任何新请求。

相关工具

Canonical: https://devformatlab.com/zh/json-formatter