JSON压缩算法:CJSON和HPack

转载 2016年08月30日 10:32:28

JSON已得到广泛应用,在很多应用场景下,你可能想进一步地压缩JSON字符串的长度,以提升传输效率,这里向你介绍两种常用的同构压缩算法:CJSON和HPack。

CJSON压缩示例

原始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压缩后:

{
  "templates": [ 
    [0, "x", "y"], [1, "width", "height"] 
  ],
  "values": [ 
    { "values": [ 1,  100, 100 ] }, 
    { "values": [2, 100, 100, 200, 150 ] }, 
    {} 
  ]
}

HPack压缩示例

原始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压缩后:

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

我目前正在使用的是基于HPACK算法的开源项目JSONP:https://github.com/WebReflection/JSONH,数据量越大,效果越明显,应用场景也更加有意义。

参考:http://web-resource-optimization.blogspot.com/2011/06/json-compression-algorithms.html


相关文章推荐

服务器使用Gzip压缩数据,加快网络传输(Java 例子)

在我们的项目中,添加对gzip的支持,是为了加快数据在网络中的传输速度。 使用gzip,首先要设置请求消息头Accept-Encoding为gzip。这样,你将会得到一个响应,根据消息头Co...
  • hpli148
  • hpli148
  • 2012年04月17日 10:44
  • 10057

utf-8+DOM 中的&#65279 php

$str1=array(); $budget=array(); $row=array(); $str=file_get_contents("log/budget.txt");//获取文本内容 ...
  • LCRxxoo
  • LCRxxoo
  • 2016年06月03日 14:32
  • 433

常用数据无损压缩算法分析

  • 2014年03月31日 14:55
  • 212KB
  • 下载

速度之王 — LZ4压缩算法(三)

LZ4是一个快速的无损压缩算法,单核的压缩速度超过400MB/s,单核的解压速度超过1GB/s。 LZ4也适用于多核的情况,压缩速度能成倍的提高,解压速度几乎达到RAM的速度限制。 文本主要分析LZ4...
  • zhangskd
  • zhangskd
  • 2013年12月19日 17:46
  • 11408

LZ77压缩算法介绍

  • 2011年07月01日 18:15
  • 13KB
  • 下载

C实现ZIP压缩算法

  • 2010年08月02日 22:59
  • 517KB
  • 下载

BMP文件格式及RlE压缩算法

6.1 BMP文件格式 6.1.1 简介 位图文件(Bitmap-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Wi...

压缩算法源码及相关教程

  • 2006年08月31日 10:53
  • 298KB
  • 下载

图片压缩算法格式fh演示程序

  • 2007年06月29日 17:42
  • 421KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON压缩算法:CJSON和HPack
举报原因:
原因补充:

(最多只允许输入30个字)