替换标准的Android JSON解析器以获得更好的性能?

时间:2010-03-23 19:01:01

标签: android json parsing jackson

我知道Android有一个JSON解析器,但我想知道是否值得使用能提供更好性能的东西(比如杰克逊 - 见http://jackson.codehaus.org/)?有人试过吗?

5 个答案:

答案 0 :(得分:7)

嗯,这里有一个couple links比较Jackson JSON的性能与现有的JSON,SAX和Protocol Buffers。根据作者的说法,Jackson比SAX或内置的JSON更快,并且与Protocol Buffers相当。最后一部分听起来有些可疑,但无论如何,杰克逊肯定会在Android上运行,可能值得进行一些实验。

但是,我还没有检查过JAR的大小。如果它是巨大的,除非你因为额外的JSON性能而死,否则它可能不值得太空。

答案 1 :(得分:5)

自API 11起,Android中有stream json parser

答案 2 :(得分:4)

迟到的答案但它可能仍然有帮助。我正在使用Jackson从Twitter解析JSON以及将Maps持久化到数据库。杰克逊的数据映射非常棒。能够将JSON直接映射到对象是非常棒的,并使一切变得更加清洁。

即使您只是解析简单回复,数据映射也可以帮助您使代码更清晰(更高效)。对我来说,天赐之物是我不必为每种类型的Twitter api函数编写解析逻辑。

答案 3 :(得分:0)

关于这些解析器的另一个视角。我正在浏览2009年的Google IO,并且非常关注应用程序开发人员有效使用电池的问题。

以下是该演讲的链接:link

现在根据谈话内置的安卓知识分析器是基于树的,这些在电池寿命方面应该是低效的。有没有人真的看过这个。

通过这次讨论,看起来杰克逊解析器似乎在所有方面都是胜利者。它几乎同样快速,如果不是内置的,也基于事件/流,而不是基于树,这在电池使用方面更好。

虽然我想分享并就此得到一些意见。

答案 4 :(得分:0)

我使用jackson json来实现我的android应用程序,它通过json-rpc与服务器通信。我喜欢用它来序列化/反序列化json-rpc请求和响应以及传输数据的对象。 我使用2.0版本的Jackson-json。我已经在我的构建路径中添加了两个jar:jackson-databind-2.0.0.jar,jackson-core-2.0.0.jar和jackson-annotations-2.0.0.jar。

旁注:android是否有任何json-rpc实现。单独的json-rpc和http流量会很好。我已经google了很多,没有找到好的json-rpc生成器,json序列化器/反序列化器,对于传输,我将使用android-query。