Iphone 我应该在JSON或单独的二进制连接中移动大数据块吗?

Iphone 我应该在JSON或单独的二进制连接中移动大数据块吗?,iphone,json,blobs,Iphone,Json,Blobs,问题: 为了简单起见,最好用JSON发送大数据块,还是通过单独的连接将其作为二进制数据发送 如果是前者,你能提供一些关于如何优化JSON以最小化大小的技巧吗 如果是后者,是否值得使用出现在两者中的标识符(例如,作为“数据”):“”将JSON数据逻辑连接到二进制数据,并且数据块的第一个字节为 背景: 我的iPhone应用程序需要通过3G网络接收JSON数据。这意味着我需要认真考虑数据传输的效率,以及CPU上的负载 大多数数据传输都是相对较小的文本数据包,对于这些数据包,JSON是一种自然格式,因此

问题:

为了简单起见,最好用JSON发送大数据块,还是通过单独的连接将其作为二进制数据发送

如果是前者,你能提供一些关于如何优化JSON以最小化大小的技巧吗

如果是后者,是否值得使用出现在两者中的标识符(例如,作为“数据”):“”将JSON数据逻辑连接到二进制数据,并且数据块的第一个字节为

背景:

我的iPhone应用程序需要通过3G网络接收JSON数据。这意味着我需要认真考虑数据传输的效率,以及CPU上的负载

大多数数据传输都是相对较小的文本数据包,对于这些数据包,JSON是一种自然格式,因此没有必要过分担心效率

然而,一些最关键的传输将是大量的二进制数据——肯定至少有100千字节的数据,并且可能接近1兆字节,因为客户使用该产品积累了更长的历史。(注意:我将在iPhone上缓存我能缓存的数据,但数据仍必须至少传输一次。)这不是流式数据

我可能会使用第三方JSON SDK——我在开发过程中使用的是


谢谢

您可以尝试在发送之前压缩JSON(也许是gz),然后在客户端解压


但我不确定这会如何影响iPhone的性能。

这当然是可能的。这是否有帮助取决于瓶颈最终是网络传输还是手机解码。我对瓶颈的第一个猜测是解压。只要你不经常这样做,就不会太糟糕。