JSON 压缩工具
去除空白字符,让 JSON 体积尽可能小。
如何使用 JSON 压缩工具
- 粘贴已格式化的 JSON。
- 复制压缩后的单行输出。
关于 JSON 压缩工具
压缩 JSON 会去掉所有机器不需要的字节:换行符、缩进,以及每个冒号后面的空格。数据本身不受影响——解析压缩后的输出,得到的结构和原来完全一致——所以唯一的收益就是传输时字节数的减少。这与JSON 格式化工具正好相反。
对压缩带来的体积节省要客观看待。空白字符压缩效果非常好,所以如果你的 API 已经用 gzip 或 Brotli 提供响应——大多数都是这样——那么先做压缩节省的体积会远小于原始字符数所暗示的数字。真正能发挥作用的场景,是那些没有透明压缩的地方:存储在数据库字段中的值、环境变量里的配置数据块、嵌入到网址中的负载,或是受限于消息大小上限的任何内容。
本工具会先解析你的 JSON,再重新输出,这意味着格式错误的输入会被判定为错误,而不是被悄悄弄乱——注释、末尾逗号、单引号键名都不是合法的 JSON,统统会被拒绝。解析同时也意味着输出会被规范化,而不只是简单去除空白:数字字面量会按规范形式重新输出,所以 1.50 会变成 1.5,1e2 会变成 100,重复的键会合并为最后一次出现的那个。这一切都在你的浏览器中完成,不会上传任何内容。
常见问题
压缩会改变我的数据吗?
数据本身不会改变——解析输出得到的结构完全一致。不过文本在空白之外确实会有变化:数字会以规范形式重新输出,所以 1.50 会变成 1.5,1e2 会变成 100。如果你需要原始字节完全不变,就不要让它经过解析器这道流程。
如果服务器已经用了 gzip,压缩还有意义吗?
通常意义不大。重复的空白字符正是压缩算法最擅长处理的对象,所以大部分节省早已由压缩算法完成。压缩最有价值的场景,是那些没有对数据做压缩处理的地方——数据库字段、环境变量、网址,以及有消息大小上限的场合。
这真的是在压缩 JSON 吗?
不完全是。它只是去除了无意义的空白字符,并没有涉及任何压缩算法,结果仍然是可读的纯文本 JSON,只是变成了一行。
我能把格式化的版本找回来吗?
可以——压缩是可逆的,因为没有丢弃任何有意义的信息。把压缩后的结果粘贴到 JSON 格式化工具中,选择你想要的缩进方式即可。原来的具体排版选择已经不在了,但结构完全相同。
为什么它会拒绝我的文件?
因为它在压缩的同时也会进行校验。注释、末尾逗号、未加引号的键名和单引号字符串在手写配置文件中很常见,但都不是合法的 JSON。错误提示会指出具体出问题的位置。

