• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

tcorral/JSONC: JSON compressor and decompressor

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

tcorral/JSONC

开源软件地址:

https://github.com/tcorral/JSONC

开源编程语言:

JavaScript 65.8%

开源软件介绍:

JSONC

Update to version 1.6.1

Build Status

Changelog

Background

One of the problems you can have developing rich internet applications (RIA) using Javascript is the amount of data being transported to and from the server. When data comes from server, this data could be GZipped, but this is not possible when the big amount of data comes from the browser to the server.

JSONC is born to change the way browser vendors think and become an standard when send information to the server efficiently.

JSONC has two differents approaches to reduce the size of the amount of data to be transported:

  • JSONC.compress - Compress JSON objects using a map to reduce the size of the keys in JSON objects.
    • Be careful with this method because it's really impressive if you use it with a JSON with a big amount of data, but it could be awful if you use it to compress JSON objects with small amount of data because it could increase the final size.
    • The rate compression could variate from 7.5% to 32.81% depending of the type and values of data.
  • JSONC.pack - Compress JSON objects using GZIP compression algorithm, to make the job JSONC uses a modification to use the gzip library and it encodes the gzipped string with Base64 to avoid url encode.

Usage

Compress a JSON object:

// Returns a JSON object but compressed.
var compressedJSON = JSONC.compress( json );

Decompress a JSON object:

// Returns the original JSON object.
var json = JSONC.decompress( compressedJSON );

Compress a normal JSON object as a Gzipped string:

// Returns the LZW representation as string of the JSON object.
var lzwString = JSONC.pack( json );

Compress a JSON object as a Gzipped string after compress it using JSONC:

// Returns the LZW representation as string of the JSON object.
var lzwString = JSONC.pack( json, true );

Decompress a normal JSON object from a Gzipped string:

// Returns the original JSON object.
var json = JSONC.unpack( gzippedString );

Decompress a JSON compressed object using JSONC from a Gzipped string:

// Returns the original JSON object.
var json = JSONC.unpack( gzippedString, true );

Examples of compression

Example data.js.

Original - 17331 bytes
Compressed using JSONC - 16025 bytes
Compression rate - 7.5%


Original compressed using gzip.js - 5715 bytes
Compressed using JSONC using gzip.js - 5761 bytes


Compression rate from original to compressed using JSONC and gzip.js - 66.76%

Example data2.js.

Original - 19031 bytes
Compressed using JSONC - 12787 bytes
Compression rate - 32.81%


Original compressed using gzip.js - 4279 bytes
Compressed using JSONC using gzip.js - 4664 bytes


Compression rate from original to compressed using JSONC and gzip.js - 75.49%

Next steps

Implement the gzip class in different languages (Java, Ruby...)




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap