我正在为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);
[....]
}
我这样做有什么不对吗?有没有更好的方法呢?
非常感谢你。
答案 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样式解析,并且速度更快。