使用 HPack 與 CJSON 演算法來壓縮 JSON

JSON 的壓縮演算法, 目前有 CJSON 和 HPack 兩種, 都是透過結構的改變, 來將容量壓小, 所以 Client 端寫法還是得要改寫. (不同於 gzip 等壓縮演算法)

HPack 與 CJSON 的 Source code

CJSON Compress Algorithm

原始 JSON
[
  { // This is a point
    "x": 100,
    "y": 100
  }, { // This is a rectangle
    "x": 100,
    "y": 100,
    "width": 200,
    "height": 150
  },
  {}, // an empty object
]
使用 CJSON 壓縮的 JSON
{
  "templates": [
    [0, "x", "y"], [1, "width", "height"]
  ],
  "values": [
    { "values": [ 1,  100, 100 ] },
    { "values": [2, 100, 100, 200, 150 ] },
    {}
  ]
}

HPack Compress Algorithm

原始 JSON
[{
  name : "Andrea",
  age : 31,
  gender : "Male",
  skilled : true
}, {
  name : "Eva",
  age : 27,
  gender : "Female",
  skilled : true
}, {
  name : "Daniele",
  age : 26,
  gender : "Male",
  skilled : false
}]
使用 HPack 壓縮的 JSON

[["name","age","gender","skilled"],["Andrea",31,"Male",true],["Eva",27,"Female",true],["Daniele",26,"Male",false]]

結論

  • HPack 的壓縮效率比較高, 如果 JSON 內容太少, CJSON 的資料可能反而會比較多.

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料