我正在开发一款iPhone应用程序,将向服务器发送和接收大量数据。我使用JSON获取数据。我想知道是否可以在接收到的数据上使用某种压缩方式以尝试加快处理速度。如果可以,哪种压缩方式最适合JSON,并在哪里可以找到更多信息?谢谢。
我认为,如果您过于担心数据大小,HPack(也称为JSONH)压缩算法与gzip压缩是一个不错的选择。我尝试使用两种压缩方法对包含对象数组的简单JSON数据进行压缩 -
JSONH + gzip的结果比仅使用gzip多压缩了约7%。在我的情况下,这是一个相当大的数字,因此我采用了混合实现。
至少有两种算法用于JSON压缩(CJson和HPack)。
如果客户端设备支持gzip,则使用JSON压缩没有任何好处。当同时使用gzip压缩和json压缩时,改进是微不足道的。当禁用或不支持gzip时,使用JSON压缩是有意义的。
iPhone支持ZLib。但我认为让您的服务器支持压缩是更好的选择,因为NSURLRequest可以接受来自服务器响应的gzip编码。由于JSON是可序列化的,这可能是您的最佳选择。
使用zlib,您可以在客户端使用压缩。
JSON本身并不关心您在数据上使用哪种压缩方式,因此您可以自由选择最适合数据并提供最佳大小/性能的压缩方案。
但是,JSON期望所有数据都以UTF-8格式存在,因此您需要对压缩数据进行编码,例如使用base64编码。