压缩的Json Javascript

ray*_*ray 27 javascript compression jackson

目前,我将JSON从Ajax帖子发送到服务器,然后使用Jackson Mapper将其转换为对象.

格式是这样的

{"id":"780710","folderID":"42024","displayOrder":2},{"id":"780724","folderID":"42024","displayOrder":3}
Run Code Online (Sandbox Code Playgroud)

什么是压缩这些数据的最佳JavaScript库,杰克逊映射器能够处理新格式吗?

Sta*_*Man 38

为什么不启用浏览器和Web服务器支持的gzip压缩?这将很好地压缩数据大小,几乎没有明确的工作.

  • 一个非常好的主意,但是:你将如何实现这一目标? (6认同)
  • 由于OP要求AJAX请求的压缩方法,因此这个答案有点不足.没有任何外部库,gzip压缩现在只能用于从服务器发送的数据. (4认同)
  • 是的,gzip可以用JSON和XML产生令人印象深刻的口粮,特别是如果内容是缩进的(不应该为生产做,但有些开发人员会意外地将其留下). (2认同)
  • "为什么不?" gzip是一个很好的解决方案,所以+1.但是可能有更好的解决方案,因为gzip是一种通用的压缩算法.原则上,如果您有一个知道数据结构的特定算法,那么您可以做得更好 - 而JSON具有简单,定义良好的结构.我还没找到一个. (2认同)

Bea*_*rtz 12

正如@JamWaffles所说,这是JSON能够做的最好的压缩.在您的情况下(您提供的代码行),进一步压缩可能是过度的.

但是如果您有更大的响应,并且想要保存这些字节,请查看

要么

它们不是 JSON,但它们将数据序列化为较小的格式(在大多数情况下).

  • 这些都不适合我.这是我在4mb JSON文件上获得的细分.BSON:5.2MB; msgpack:5.1MB; lz-string(UTF16):607kb lz-string:576kb; lz4:555kb; lz-string(base64):519KB (10认同)
  • 唉,BSON通常不比JSON更紧凑.此外,如果客户端是用Javascript编写的,那么二进制格式实际上是非常糟糕的匹配,因为客户端将慢得多(JSON解析器/生成器是本机的,浏览器不提供本机二进制编解码器). (5认同)
  • @PeterEhrlich我很想看到4MB的JSON文件.特别是在msgpack的情况下,我看不出你怎么可能最终得到大约25%的文件. (4认同)
  • @BeatRichartz也许是由于base64编码...一般如果内容主要是String值,那么二进制格式就没有多少可以做到,所以加上base64会解释它. (3认同)

Mar*_*ark 6

你可以使用例如jsonhhpack 的后继者,它在web-resource-optimization上有基准。它有帮助,但同一个站点也会向您展示仅 gzip 可能就足够了。

所以要明确的是,gzip 比 hpack 工作得更好,但将它们结合起来会增加一点压缩。

  • 好的谢谢更正。我一定对“JSONH 是 json.hpack 项目的最新版本并基于 JSONDB 概念”感到困惑。在 jsonh 页面上。 (3认同)