JSON 压缩和格式化的区别

JSON 压缩(Minify)和 JSON 格式化(Beautify)是两个方向相反的操作,很多新手分不清。一句话概括:压缩是去掉空格换行减小体积,格式化是加上缩进换行便于阅读。

格式化:为了「人」好读

格式化(也叫美化、美化输出)会把挤在一起的 JSON 展开,加上缩进和换行,让层级结构一目了然:

格式化前(一行,难读):

{"name":"Tom","tags":["a","b"],"addr":{"city":"北京"}}

格式化后(缩进清晰):

{
  "name": "Tom",
  "tags": ["a", "b"],
  "addr": {
    "city": "北京"
  }
}

用途:调试接口、阅读返回数据、写文档时用格式化。

压缩:为了「机器」省流量

压缩(也叫最小化)会删除所有不必要的空格、换行,把 JSON 挤成一行:

{"name":"Tom","tags":["a","b"],"addr":{"city":"北京"}}

用途:接口传输、存储、减小文件体积。压缩后的 JSON 体积通常能减少 30%-50%,在网络传输时能明显提速。

两者的关系

格式化 压缩
方向 加缩进换行 去空格换行
体积 变大 变小
可读性 高 低
用途 开发调试 生产传输
数据内容 完全不变 完全不变

注意:两个操作都不改变数据本身,只是换了个排版方式。所以格式化后再压缩,得到的就是最初的数据。

用 JSON Lens 一键切换

在 JSON 在线格式化工具 里,这两个操作都是一键完成:

数据完全在浏览器本地处理,不会上传服务器。

延伸阅读