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

标签: News-Technology algorithm compress json | 发表时间:2011-07-06 01:40 | 作者:Tsung peigen
出处:http://blog.longwin.com.tw

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 的資料可能反而會比較多.

相关 [hpack cjson 演算] 推荐:

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

- peigen - Tsung's Blog
JSON 的壓縮演算法, 目前有 CJSON 和 HPack 兩種, 都是透過結構的改變, 來將容量壓小, 所以 Client 端寫法還是得要改寫. (不同於 gzip 等壓縮演算法). HPack 與 CJSON 的 Source code. CJSON: 下載 (備份). CJSON 的演算法可見此篇: Compress your JSON with automatic type extraction.

探索HTTP/2: HPACK协议简述(原)

- - BlogJava-首页技术区
探索HTTP/2: HPACK协议简述. 在本系列的第一篇文章中已经介绍了HTTP 2协议,本文则将简述用于HTTP/2头部压缩的 HPACK协议. (2016.09.24最后更新).     HPACK头部压缩的基本原理就是使用索引表和 Huffman编码. 在压缩(编码)与解压(解码)过程,可将指定的头部字段(包含字段名与字段值)存储在索引表中.

如何當一個好的領導人,Google 用演算法幫我們導出

- Jay - Mr. Jamie 看網路與創投
啊,Google 就是 Google,無論什麼事情,他們就是要用科學的精神去探討,就算是像管理這樣難以量化、難以衡量的題目,他們也不會因此善罷甘休. 昨天《紐約時報》大篇幅報導,Google 花了一年多時間,用演算法分析了公司內部所有的經理人的評量、考績、團隊表現、員工訪談、意見調查等種種資料,整理出一個「如何做一個好領導人」的列表,我認為相當值得參考.