我应该选择什么 - JSON或SQLite?

时间:2013-08-03 02:20:09

标签: android json android-sqlite

在我的应用程序中,在每次启动时,一些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行。
  3. 第一种选择似乎很有效。但后来我不得不操纵JSON来显示各种信息。在某些情况下,我需要搜索完整数组来选择数组信息,并且有很多这样的情况。所以这也非常耗时。

    第二个选项更适合搜索和显示更快。所以我接着第二个选项。但是一次插入5000行也是耗时的。我在AsyncTask做了改进,但执行时间太长 - 解析JSON并存储在SQlite表中。

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

1 个答案:

答案 0 :(得分:6)

今天我回答了一个非常接近这个问题的问题 - File or Database? - Best Practice to save Objects on Android-Device。我想补充一点,如果插入5000行花费的时间太长,请尝试在单个事务中添加它们,或者使用批量加载机制。值得努力找出插入问题而不是尝试使用文件。

有关批量加载SQLite的信息,请参阅this tutorial