JSON - 优化

时间:2013-11-25 07:52:32

标签: json compression

我正在开发一个门户网站,在我的场景中,有大尺寸的JSON字符串(1MB)由服务器发送。我们正在使用WebSocket协议。显然,在客户端的浏览器上加载需要很长时间。

我尝试在服务器端压缩JSON并尝试使用Javascript解压缩。压缩很好但是在使用JS解压缩时出现了一些错误。我使用了这个库http://jsxgraph.uni-bayreuth.de/wp/2009/09/29/jsxcompressor-zlib-compressed-javascript-code/

有人可以建议是否还有其他方式?

P.S。因为我使用WebSocket所以我不能依赖浏览器的解压缩。

2 个答案:

答案 0 :(得分:1)

感谢您回复澄清。我想我现在看到了问题。总的来说,请记住zlib!= gzip,不完全是。通常,gzip是zlib数据,但有一些额外的头文件。 JSXCompressor需要zlib数据,但是你要从Java发送gzip数据。进一步解释:

在您链接到的页面上描述JSXCompressor,示例服务器端代码使用PHP的gzcompress函数。从文档:“此函数使用 ZLIB 数据格式压缩给定的字符串。” (强调他们的。)文档进一步建议使用gzencode如果真正需要gzip(在这种情况下不是这样)。

以下是Java GZIPOutputStream类的文档。请注意,此类以gzip格式输出数据。看起来解决方案是在类层次结构中爬升一级并利用DeflaterOutputStream类。

答案 1 :(得分:0)

在Gzipping之后我没有编码(BAse64)字符串,这就是为什么js抱怨的原因。在完成Base64编码之后,即使在Java端使用GZIPOutputStream,它也能正常工作。我从这里使用非最小化版本的jsxcompressor:

http://sourceforge.net/apps/trac/jsxgraph/export/2808/trunk/JSXCompressor/