将BSON返回移动设备有什么问题吗?

时间:2012-07-23 20:17:54

标签: json http mobile bson

我目前正在使用移动设备iphone应用程序等编写一些消费服务。所以对我来说非常重要的是从我的http服务返回到设备的工资负载,我需要它尽可能小。所以我和json一起去了。

但是我遇到的另一种类型的平均尺寸减少了25% - BSON

有没有人使用过这个并且使用它而不是JSON有利有弊吗?从http服务返回的数据大多是简单对象,具有许多复杂类型的属性,或者可能是对象列表。

或者是否有其他我应该关注的数据类型可能会进一步削减有效负载?

1 个答案:

答案 0 :(得分:5)

我在Android 3.2上使用JSON和BSON进行了一些性能测试。我使用的框架是gson和bson4jackson。服务器是使用Jersey构建的Java REST API。在该场景中,我将客户端上的Java对象编组为JSON / BSON,通过HTTP将其发送到服务器,对其进行解组,如果解组过程成功,则以200 OK响应。

结果是,BSON在更大的文件(大约120 kb或更多)上更快,在小文件中JSON显然更快。

原因是BSON使用一些额外的数据扩展了数据格式以加速解析,从而导致更大的文件大小,特别是对于小文档。

我尝试使用iOS,但我找不到(工作)BSON框架来解码BSON。 BSONKit会为iOS上的某些元素抛出错误。如果有人知道另一个工作框架,我很高兴你能告诉我。

BTW:JSON的包装率也更好,最大可达~135 kb。恕我直言,你应该只使用BSON,如果你只需处理大文件,因为120 kb或更多是移动设备和服务器之间传统请求的一个非常大的尺寸。