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

ama*_*eur 1 mobile json http bson

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

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

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

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

小智 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或更大是一个非常大的尺寸.