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

标签 json http mobile bson

我目前正在编写一些用于移动设备 iphone 应用等消费的服务。所以对我来说非常重要的是从我的 http 服务返回到设备的有效负载,我需要它尽可能小。所以我为此选择了 json。

但是我遇到了另一种类型,它的尺寸平均要小 25% - BSON

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

或者我应该查看另一种数据类型是否可以进一步减少有效载荷?

最佳答案

我在 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 上为某些元素抛出错误。如果有人知道另一个工作框架,如果你能告诉我,我会很高兴。

顺便说一句:JSON 的打包率也更好,大小可达 ~135 kb。恕我直言,如果你只需要处理大文件,你应该只使用 BSON,因为 120 kb 或更多对于移动设备和服务器之间的常规请求来说是一个非常大的大小。

关于json - 将 BSON 返回到移动设备有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11619871/

相关文章:

css - Joomla 模板背景和标题图像

html - 如何解决并排放置 div 的移动问题?

c# - 迭代嵌套的 JSON 对象数组并访问内部 token 值

java - jackson 解析复杂对象

ios - 将 NSManagedObjects 与 JSON 数组的内容进行比较

java - TCP 套接字 HTTP GET 请求内容长度 > 0 但未返回实际内容

java - Json数组不打印jsp中的值

http - 在浏览器选项卡中查询时如何保护 GET 请求

apache - 为什么 IIS 不支持分块传输编码?

android - 如何从一个应用程序快速集成多个商家