JSON 压缩器

粘贴一份精美印刷的 JSON 文档,即可获得去除了所有冗余字节的单行版本:包括标记间的空格、换行符、末尾空白以及 JSONC 注释。输出结果的字节数与该数据最短编码方案相当,可直接嵌入<script>格式文件、URL参数或按字节计费的有效载荷中。

如何最小化 JSON

  1. 1

    粘贴 JSON

    已格式化或已部分压缩均可。输入内容将被解析并重新序列化。

  2. 2

    最小化

    所有标记之间的空白均被移除;注释被删除;数字保持原样。

  3. 3

    查看尺寸差异

    处理前/处理后的字节数及减少百分比。

  4. 4

    复制输出内容

    单行 JSON ,可直接粘贴至代码文件或API请求中。

被移除的内容

  • 令牌之间的空白:空格、制表符、换行符。
  • 注释(采用 JSONC 格式的///* */),已删除,因严格 JSON 禁止使用此类注释。
  • 文档开头的“BOM”及前导空白区域。

以下内容不会被删除

  • 值类型:所有字符串、数字、布尔值及空值均被完全保留。
  • 数字格式:每个数字都会原样保留:1.50仍是1.501e-3仍是1e-3。该工具会保留您输入的精度。
  • 键的排列顺序:对象保持其原始插入顺序。

为何要压缩 JSON

  • 更小的负载:经过优化排版的120 KB配置文件可压缩至70 KB;这对每个请求都至关重要。
  • 内嵌插入:当将 JSON 插入<script>标签或URL参数时,空白字符会浪费带宽。
  • 哈希稳定性:两个语义相同的 JSON 文档,其空白字符哈希值可能不同。先进行最小化处理可生成一致的哈希值(尽管真正的规范化还会对键值进行排序)。

字节节省参考

输入 已格式化(2空格) 压缩后 节省
小型配置(50个键) 1.8 KB 1.1 KB 39%
API响应(嵌套,5 KB) 6.2 KB 4.1 KB 34%
大型数据导出 1.2 MB 0.8 MB 33%

使用gzip压缩后,差异会显著缩小,因为gzip本身就能高效压缩空白。对于原始字节场景(如URL、内嵌内容),建议使用压缩;而对于网络传输场景,则应依赖gzip。

何时不应进行最小化处理

  • 存储在版本控制中的配置文件:可读性优先于字节数。
  • 人工编辑的文件,没有人会未经后悔就手动修改压缩后的 JSON 。
  • 调试日志条目,崩溃日志中仅包含一行400KB的 JSON ,根本无法读取。

常见错误

  • **精简依赖注释的 JSON 。**系统将移除所有注释;若存在 TODO 标记,解析器的行为可能会发生变化。
  • 浮点数的精简处理:部分工具对0.1的重新序列化方式与输入数据不同;本工具则完全保留其字符串表示形式。
  • 把最小化当作 gzip 压缩使用。 对于文本,gzip 所节省的字节数多于最小化。请结合使用这两种方法,切勿相互替代。

常见问题

对于精美打印格式的输入文件,压缩率通常可降低30%-40%。这种节省几乎完全来自空白字符的减少;实际数据内容并未改变。经过gzip压缩后,精简版本与精美版本之间的差异通常低于5%,因为gzip能高效处理空白字符。

该工具能精确保留数字的字符串形式:1.50始终显示为1.501e-3始终显示为1e-3。部分压缩工具会进行标准化处理,本工具默认采用保守模式,因此绝不会导致精度意外损失。

不会。压缩完全在您的浏览器中运行。粘贴的 JSON 不会离开您的设备,非常适合处理包含令牌或私有配置的API响应。

可以,输入中允许包含注释,但会在输出中将其移除(严格 JSON 不允许注释)。如需保留注释,请保存格式规范的 JSONC 源文件,并仅在部署时进行压缩。

相关工具

此工具还提供其他语言版本