你的 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% 客户端运行,加载后即可离线,零上传
使用步骤
- 在左侧输入面板粘贴原始或已美化的 JSON。文档可解析时顶部状态徽章会变绿。
- 选择缩进方式:2 空格是最常见(npm、GitHub、多数 API 文档);4 空格匹配 Python / PEP 8 风格;Tab 匹配 Go 等 gofmt 风格的配置。
- 需要紧凑的生产载荷或 URL 参数?点击「压缩」——所有换行与缩进会被移除,但值完全不变。
- 大文档建议切到树视图:点击折叠箭头展开 / 收起对象与数组,悬停查看路径提示,工具栏支持「全部展开 / 全部折叠」。
- 如果 JSON 不合法,底部会显示精确的解析错误(例如「Unexpected token } at line 7 column 3」)——点击可跳转到该位置。
- 用「复制」把结果发到剪贴板,「下载」存为 .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 时不会产生任何新请求。
相关工具
并排比对两份 JSON,行级红绿高亮,可按键名排序忽略顺序差异。
去重、删除空行、去除空格,UTF-8 ↔ Shift-JIS 编码转换,自动检测乱码。
YAML、JSON 与 Java .properties 互转,严格校验并精确定位错误。
对文本或文件进行 Base64 / Base64URL 编码与解码,实时、纯浏览器运行。
对 URL、查询字符串和 URI 组件进行编码/解码,支持 %20 与 + 空格模式。
在浏览器内为文本或文件生成 MD5、SHA-1、SHA-256、SHA-384、SHA-512 哈希。
Unix 时间戳(秒 / 毫秒)与人类可读日期互转,支持多时区。
解码 JWT (JSON Web Token),查看 Header / Payload / Signature,时间字段自动转为可读日期与过期状态。
实时测试正则表达式,匹配高亮,附常用预设。
把 JSON 转为适合嵌入代码的字符串字面量(双引号与反斜杠已转义)。
Canonical: https://devformatlab.com/zh/json-formatter