在Android上优化JSON解析

时间:2011-07-12 14:44:45

标签: android json parsing

我正在为Android开发一个需要从JSON Feed中获取大量数据的应用。这个feed是一个单行JSON文件,加权大约400 ko,包含大约10个我需要的数组。

我正在使用Android的JSON库这样做,并且输出效果很好,但需要很长时间(大约30秒)来计算。下载步骤很快完成,即创建似乎很长的JSON对象。以下是我的步骤(删除try / catch块等)。

JSONObject feed = new JSONObject(big_string_from_feed);

JSONArray firstArray = feed.getJSONArray("key1");
JSONArray secondArray = feed.getJSONArray("key2");

[...]

在我浏览完所有数组后,按照以下方式获取每个元素:

for (int currentIndex =0;currentIndex<firstArray.length();currentIndex++){
    JSONObject myObject = firstArray.getJSONObject(currentIndex);
    [....]
}

我这样做有什么不对吗?有没有更好的方法呢?

非常感谢你。

2 个答案:

答案 0 :(得分:2)

如果表现令人担忧,请使用杰克逊。有关效果结果,请参阅https://github.com/eishay/jvm-serializers/wiki。 (这些结果应该很快更新,包括Jackson手册/树字符串处理,它将在Jackson手册和Jackson数据绑定字符串处理之间具有某种性能。手动/树字符串处理是原始问题中演示的方法。)

答案 1 :(得分:0)

看看json-simple(见http://code.google.com/p/json-simple)。它提供了JSON流的SAX样式解析,并且速度更快。