跳到主内容
UniKit

JSON 压缩

把 JSON 压成单行紧凑格式,并对比压缩前后的字符数、字节数与压缩率;非法内容会指出第几行第几列。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

压缩结果

这个工具能做什么

  • 把多行美化的 JSON 压成单行再塞进环境变量、命令行参数或一行配置文件里,避免换行把参数截断。
  • 对比压缩效果:结果下方直接给出原始与压缩后的字符数、字节数和节省比例,判断值不值得压缩。
  • 从文档里复制出来的 JSON 常常带多余缩进和换行,压缩一下便于做字符串比对或计算哈希。
  • 压缩后当作接口请求体示例,粘贴到 curl、Postman 或日志里更紧凑。

示例

输入

{ "name": "UniKit", "tags": [ "json", "minify" ], "meta": { "stable": true } }

输出

{"name":"UniKit","tags":["json","minify"],"meta":{"stable":true}}

统计:原始 78 字符 / 78 字节,压缩后 65 字符 / 65 字节,节省 13 字节,压缩率 16.67%。压缩只去掉结构空白,字符串内部的空格会完整保留。

常见问题

压缩率为什么有时是 0%?

因为输入本身已经很紧凑,或者空白只占极小比例。压缩只删除键值对之间、数组元素之间和括号前后的空白与换行,字符串里的内容一个字符都不会动,所以本来就单行的 JSON 压缩后长度不变。

这和 gzip 压缩是一回事吗?

不是。这里做的是「去掉可读的空白」,输出仍是合法 JSON 文本,减少的只是排版字符。gzip、brotli 是真正的二进制压缩算法,能把重复内容压得更小,但输出不再可读,两者可以叠加使用。

字符串里的空格和换行会被删掉吗?

不会。只有 JSON 结构之外的空白会被移除,双引号内部的空格、制表符以及 \n 转义序列都原样保留,所以压缩后的结果与原数据语义完全一致。

输入非法 JSON 会怎样?

会先校验再压缩,所以非法内容不会产出错误结果,而是给出第几行第几列以及原因,例如内容意外结束、对象的键必须是双引号字符串、JSON 结束后还有多余内容。开头的 UTF-8 BOM 会被自动忽略。

压缩过程会上传数据吗?

不会。全部在浏览器里完成,页面不发起网络请求,断网可用,粘贴的 JSON 不会被记录或保存。

关键词:jsonjson 压缩json minifyjson 紧凑compress jsonminify压缩率size 对比

同类工具