2

我将 Json 消息发送到服务,该服务将这些消息重新发布给我们的用户。问题是我的一些消息大于允许的消息大小的最大限制,所以我想知道是否可以对我的消息应用任何类型的压缩,然后在客户端解压缩它们。

首先我在 C# 中尝试了 Gzip,但使用 JavaScript 解压缩似乎很难。

其他一些声音告诉尝试 LZMA 和 Zlip。

我是在正确的道路上,还是我应该以不同的方式思考。

4

2 回答 2

1

我找到了一个解决方案,它成功地使用“C# 和 PHP”解压缩压缩文本。Zlib 用于压缩。

我从 JSXCompressor 得到解决方案,你可以下载这个例子:http: //jsxgraph.uni-bayreuth.de/distrib/jsxcompressor.zip 见 testhelloworld.php

在 PHP 中,使用 gzcompress 完成压缩,然后使用 base64_encode 对压缩输出进行编码。

$x = 'Some text or json';
$compressed = base64_encode(gzcompress($x, 9)); // 9 could be from 1 to 9
// echo $compressed;
file_put_contents('compressed.txt', $compressed);

解压:

$.ajax('compressed.txt').done(function (res) {

    console.info(JXG.decompress(res));
});
于 2015-02-18T08:49:59.733 回答
0

可能会使用 BSON,它是 JSON 数据的二进制编码。

http://bsonspec.org/

在客户端,有一些用于编码/解码的库。Mongo DB自带一个:https ://github.com/mongodb/js-bson

在服务器端 JSON.net 支持 BSON 序列化/反序列化:http: //james.newtonking.com/archive/2009/12/26/json-net-3-5-release-6-binary-json-bson-support

这不完全是压缩。只是 JSON 数据的更紧凑的表示。

于 2015-02-16T12:19:50.713 回答