JSON 压缩工具

移除多余空白,准确查看节省空间。

数据与格式
正在准备编辑器…
输入
输出
结果将显示在这里。

使用方法

  1. 粘贴 JSON、打开文件或尝试示例。
  2. 紧凑结果会随输入更新。查看节省的空间。
  3. 复制或下载压缩结果。

JSON 更小,每个值都完整保留

压缩会移除 JSON 字符串外的缩进、换行和其他多余空白。输出仍为纯文本 JSON,普通 JSON 解析器即可读取。

适用于紧凑测试数据、单行请求体,或无需易读缩进的文件。结果面板比较实际 UTF-8 大小,而非字符数。

压缩的工作原理

工具检查文档并扫描 JSON token。字符串外的空白 token 被省略,其余每个 token 的原始文本都复制到结果中。引号内的空格或转义换行属于字符串,会被保留。

结果保留 1.00、1e+30、-0 等数字写法,也保留属性顺序和重复名称,帮助避免在对这些细节处理不同的读取程序中出现意外变化。

字符串外的空白
易读输入
{
  "message": "hello world",
  "values": [1, 2, 3]
}
紧凑输出
{"message":"hello world","values":[1,2,3]}

“hello world”中的空格属于字符串,会被保留。外围缩进和换行则会移除。

理解大小比较

输入和输出大小以 UTF-8 字节数计量。节省字节数等于输入大小减去输出大小;百分比为该差值除以输入大小。Emoji 和许多非英语字符会占用多个字节。

已经紧凑的文档可能无法再节省空间。有大量缩进的文件则可能明显缩小。如果选择可选的末尾换行,输出可能比原本紧凑的输入稍大;结果会如实显示。

精简 JSON 与编码压缩不同

精简处理产生 JSON 文本。gzip 或 Brotli 等 HTTP 压缩会对响应字节进行编码以便传输,使用时需要解码。服务器可以同时使用两者,但本工具的百分比只衡量纯文本 JSON 的大小变化,不代表 HTTP 压缩后的传输节省量。

处理限制

最多支持 5 MiB UTF-8 输入、20 MiB 输出、128 层嵌套、250,000 个扫描 token,每次运行最长 10 秒。较大的文档可能需要性能更好的设备。

?

常见问题

压缩会自动运行吗?

会。输入短暂停顿后,只读结果便会更新,输入内容不变。关闭“自动压缩”后,可点击“压缩 JSON”或按 Ctrl/⌘ + Enter 手动运行。

输入变为无效时会怎样?

上一次有效结果仍会显示以供比较。“复制”“下载”和“用作输入”不可用,节省空间的数据会清空,直到当前输入产生有效结果。“清空”会清空两个编辑器。

压缩会移除字符串内的空格吗?

不会。引号内的空格、转义字符和编码换行均保留,只移除字符串外的多余空白。

这和 gzip 压缩一样吗?

不一样。下载的是纯文本 .json 文件,不是压缩包。服务器可以另外使用 gzip 或 Brotli 进行 HTTP 传输压缩。

数字写法会改变吗?

不会。大整数、小数末尾的零、指数写法和负零都保留原始写法。压缩不会将它们转换为浮点值。

为什么输出没有变小?

可能没有多余空白可移除。选择末尾换行会增加一个字节,因此已经紧凑的输入可能稍微变大。大小比较会计入此选项。

为什么紧凑输出仍显示为多行?

“自动换行”只更改编辑器中长文本的显示方式,不会在复制或下载的 JSON 中插入换行符。关闭自动换行即可按单行查看。

能把结果重新变为易读的 JSON 吗?

可以。使用 JSON 格式化工具重新添加缩进,能生成易读的 JSON,但无法还原压缩前精确的空白排版。

JSON 会离开我的设备吗?

不会。粘贴的文本和本地文件都在浏览器中处理。DevToolsy 不会上传文档,也不保存文档历史记录。如需保留,请在离开页面前下载结果。

寻找下一个实用工具

语言

切换语言?当前页面的内容将被清空。请先复制或下载需要保留的数据。