5

在我的应用程序中,在每次启动时,首先JSON必须从服务器下载一些信息,然后我需要通过在整个应用程序生命周期中解析这些数据来显示各种信息。该JSON对象非常大,几乎有 5000 JSONArray。每个 JSON 数组都具有以下形式:

[37,101,"The Blocks Problem",9952,0,1000000000,0,852,0,0,11197,0,16606,0,7279,200,18415,5325,14492,3000,1]

所以我有两个选择:

  1. 将 json 字符串保存到一个文件中,然后再读取它。
  2. 将 JSON 数组保存在 SQlite 数据库中,其中包含近 10 列和 5000 行。

第一个选项似乎是有效的。但后来我必须操纵 JSON 来显示各种信息。在某些情况下,我需要搜索整个数组以获取数组信息,这样的情况很多。所以这也将非常耗时。

第二个选项更适合更快地搜索和显示。所以我选择了第二种选择。但是一次插入 5000 行也很耗时。我这样做是AsyncTask为了改进,但执行起来需要太多时间 - 解析 JSON 并存储在SQlite表中。

那么我能做什么呢?存储这些巨大信息并在以后有效使用它的最佳方法是什么?

4

1 回答 1

6

我今天回答了一个非常接近这个问题的问题——文件还是数据库?- 在 Android 设备上保存对象的最佳实践。我想补充一点,如果插入 5000 行花费的时间太长,请尝试将它们全部添加到单个事务中,或者使用批量加载机制。找出插入问题而不是尝试使用文件是值得的。

请参阅本教程关于批量加载 SQLite

于 2013-08-03T02:32:02.393 回答