JSON 压缩工具

删除 JSON 不需要的所有空格、制表符和换行,得到等价且体积最小的单行文档。输入会先经过校验,确保不会产出错误的 JSON。

输入
输出

    数据不会离开你的浏览器。快捷键:Ctrl/⌘ + Enter 执行主操作。

    什么是 JSON 压缩?

    压缩 JSON 就是删除所有不在字符串内的空白:缩进、换行以及冒号和逗号后面的空格。结果只有一行,任何 JSON 解析器读取后得到的数据都与原文完全相同。RFC 8259 中的 JSON 语法允许在每个结构字符周围出现空白,但空白没有任何含义,因此这种转换是安全且可逆的:随时可以用 JSON 格式化工具把输出重新美化。

    如何压缩 JSON

    1. 粘贴 JSON或打开文件,输入时会自动校验。
    2. 可选:勾选“键排序”,得到与键顺序无关的规范形式。
    3. 点击“压缩”。右侧会显示单行结果,以及原始大小、压缩后大小和节省的百分比。
    4. 复制或下载结果。

    示例

    {
      "id": 42,
      "tags": [ "a", "b" ],
      "note": "two  spaces stay"
    }

    压缩后为 {"id":42,"tags":["a","b"],"note":"two spaces stay"}。字符串里的两个空格会保留,因为它们是值的一部分。

    什么时候值得压缩

    对于通过 HTTP 并启用 gzip 或 Brotli 传输的响应,压缩 JSON 的收益较小,因为压缩算法已经去掉了大部分重复的空白。不过在构建步骤中顺手做一下,成本也很低。

    为什么要先校验再压缩?

    只用正则表达式删除空白的压缩工具,会把错误的 JSON 变成一行错误的 JSON,调试起来更难。本工具会先解析输入。如果输入不合法,会按原始的易读排版列出问题和行号;只有文档正确时才会生成压缩结果。数字按原样复制,因此超出 JavaScript 精度的值(如 12345678901234567890)不会被四舍五入。

    JSON 压缩工具常见问题

    压缩后的 JSON 能小多少?

    取决于输入原来的格式。用 2 个空格缩进的 JSON 通常能缩小 15–30%,用 4 个空格或制表符缩进的能缩小 25–40%。状态栏会显示压缩前后的准确大小。

    压缩后的 JSON 还是合法的 JSON 吗?

    是的。JSON 中记号之间的空白没有意义,所以压缩后的文档解析出的数据完全相同。字符串内的空白属于值的一部分,永远不会被改动。

    API 已经用了 gzip,还需要压缩 JSON 吗?

    gzip 或 Brotli 压缩已经消除了缩进带来的大部分开销,因此压缩 JSON 在传输上的收益较小,通常只有几个百分点。但对于存放在数据库中、放在查询字符串或请求头中、嵌入 HTML 或保存在内存中的 JSON,仍然有帮助。

    能同时压缩并对键排序吗?

    可以。点击“压缩”前勾选“键排序”即可。排序并压缩后的 JSON 是一种简单的规范形式,便于计算哈希、生成缓存键或比较文档。

    压缩会删除注释吗?

    注释不属于 JSON,带注释的文件是不合法的,必须先修复。点击“修复 JSON”删除注释(以及尾随逗号和其他非标准语法),然后再压缩。