JSON 格式化 / 压缩 / 校验在线工具

免费的在线 JSON 格式化、压缩、校验、转义工具。支持 2/4 空格缩进、按键名排序、语法错误高亮、统计键数与嵌套深度。完全在浏览器本地处理,数据不上传服务器,适合接口调试与日志查看。

最后更新:

原始长度:0 字节

输出长度:0 字节

关于 JSON 与本工具

JSON(JavaScript Object Notation)是目前 Web 接口与配置文件中最常用的数据交换格式。 它由 Douglas Crockford 在 2001 年提出,结构简单(仅包含对象、数组、字符串、数字、布尔、null 六种类型), 同时跨语言支持完善,几乎所有现代编程语言都内置了解析器。当前规范为RFC 8259ECMA-404

本工具提供 4 项核心能力,覆盖日常 JSON 处理 90% 以上的需求:

  • 格式化(Beautify):将压缩或单行的 JSON 按指定缩进重新排版,便于阅读
  • 压缩(Minify):去除所有空白字符,减小体积,适合传输与存储
  • 校验(Validate):解析过程中自动检查语法,错误时给出原因
  • 转义 / 反转义:把 JSON 包装成字符串字面量,或将转义后的字符串还原

典型使用场景

接口响应调试

从 Chrome DevTools 或 Postman 复制下来的接口响应通常是单行压缩的 JSON, 粘贴到本工具点"格式化"即可一键展开,方便查看字段结构与定位异常值。

日志结构化排查

结构化日志(如 Filebeat、Loki 的 JSON 日志)经常一行几 KB, 肉眼很难定位关键字段。格式化后再借助"按键名排序"统一字段顺序,对比多条日志会非常顺手。

前端打包瘦身

打包到 bundle 里的静态配置 JSON,建议先用"压缩"去掉格式化空白, 可减少 20%~40% 体积,对首屏加载尤为关键。

嵌入到代码或脚本

需要把一段 JSON 写到代码字符串里时,用"转义"一键得到带转义反斜杠的字符串字面量, 可直接粘贴进 Java/Python/Shell 源码而不会语法报错。

JSON 常见易错点

  • 键名必须用双引号:JSON 不允许像 JavaScript 那样省略键名引号, 也不接受单引号,{name: "x"} {'name': 'x'} 都是非法的。
  • 不允许尾随逗号[1,2,3,] 在 JavaScript 中合法, 但在 JSON 标准中会报错。建议在配置文件中改用 JSON5 或 JSONC。
  • 数字不支持 NaN、Infinity:JSON 数字必须是有限实数, 无法直接序列化 JS 的 NaNInfinity
  • 大整数精度丢失:JS 数字基于 IEEE 754 双精度浮点, 大于 253-1(即 9007199254740992)的整数会失真, 推荐用字符串传递大整数(如雪花 ID、订单号)。
  • 字符串中的反斜杠:JSON 字符串中 \"、 控制字符等必须用反斜杠转义;忘记转义 Windows 路径中的反斜杠是高频错误。
  • 编码必须是 UTF-8:RFC 8259 规定 JSON 传输编码必须是 UTF-8, 保存文件时注意不要使用 GBK、Latin-1 或带 BOM 的 UTF-8。

常见问题

JSON 格式化和压缩有什么区别?

格式化(Beautify)会在键值对之间添加换行和缩进,让 JSON 更易读,适合阅读和调试;压缩(Minify)会去掉所有空白字符,缩小体积,适合在网络传输或前端打包时减少带宽占用。两者数据结构完全一致,只是排版不同。

JSON 报 SyntaxError 怎么排查?

最常见的错误:1) 键名或字符串使用了单引号而不是双引号;2) 对象或数组末尾多了一个逗号(trailing comma);3) 字符串里有未转义的换行符或反斜杠;4) 注释(JSON 标准不支持 // 或 /* */ 注释,需用 JSON5 或先去掉)。本工具会在错误处给出位置提示,按提示修改即可。

为什么我的 JSON 在浏览器里看着没问题,却解析失败?

通常是因为内容里混入了不可见字符:BOM(U+FEFF)、零宽空格(U+200B)、全角空格(U+3000)。可以先用纯文本编辑器以 UTF-8(无 BOM)保存,或在本工具里粘贴时手动删除开头不可见字符。

"按键名排序"会改变 JSON 的语义吗?

不会。JSON 标准规定对象成员是无序集合,键名顺序不影响数据语义。但在某些代码场景(比如生成 diff、签名计算)需要确定性顺序,这时排序就很有用。注意数组顺序是有意义的,本工具不会调整数组元素顺序。

处理大文件会不会卡住或上传到服务器?

本工具完全在浏览器本地用 JavaScript 内置的 JSON 解析器运行,不会上传任何数据到服务器。一般情况下处理 10 MB 以内的 JSON 都是秒级响应;如果文件超过 50 MB,建议改用命令行工具(如 jq、yq)以避免浏览器内存压力。

JSON 和 JSON5、JSONC、NDJSON 有什么区别?

JSON 是最严格的标准(RFC 8259),不支持注释和尾随逗号;JSON5 在 JSON 基础上增加注释、单引号、尾随逗号支持;JSONC(JSON with Comments)是 VS Code 用的方言,允许注释;NDJSON 是每行一个独立 JSON 对象的流式格式。本工具目前严格遵循 JSON 标准。