1

我正在从 PHP 服务读取 JSON 数据,并且每次该 JSON 的版本发生变化时,我都想将其存储在 Android 上(用新数据替换旧数据),JSON 仅用于填充 Spinner。

我的问题是: - JSON 有 36KB,可以将其存储在 Shared Preferences 上吗?有一个字符串还是我应该使用 SQLite 来存储它?

每月会有一次更新

我的数据示例:http: //zimp.hugo.webe.pt/api/occupations/list

4

5 回答 5

3

如果它是一个 json 字符串,有很多记录、值,那么我建议将此字符串解析为记录,然后将这些记录保存到 sqlite,这样您就不需要再次解析这个字符串,而且是不必要的。否则,将字符串保存到共享首选项中没有任何问题。

根据您的数据,您应该选择 SQLite。

于 2012-11-05T10:57:54.777 回答
1

可以将其存储在共享首选项中。

于 2012-11-05T10:54:09.633 回答
0

这实际上取决于您要存储的数据。

SQLite

大量相同的结构化数据应存储在 SQLite 数据库中,因为数据库是为此类数据设计的。由于数据是由数据库结构化和管理的,因此可以使用 SQL 等查询语言对其进行查询以获取符合特定条件的数据子集。这使得在数据中进行搜索成为可能。当然,管理和搜索大量数据会影响性能,因此从数据库读取数据可能比从 SharedPreferences 读取数据要慢。

共享首选项

SharedPreferences 是一个键/值存储,您可以在其中将数据保存在某个键下。要从存储中读取数据,您必须知道数据的键。这使得读取数据非常容易。但是,尽管存储少量数据很容易,但存储和读取大型结构化数据却很困难,因为您需要为每个数据定义键,而且您无法真正在数据中进行搜索,除非您有一定的概念命名键。

于 2012-11-05T10:57:46.613 回答
0

保存在共享首选项中不是问题..但请记住,SP主要将原始数据类型保存在键值对中......在您的情况下不是36kb的问题。:)

于 2012-11-05T10:58:15.273 回答
0

这取决于您的数据。

  • 如果您的数据应该是动态的并且经常更改,那么您必须使用 JOSN。
  • 如果您的数据不是不定期更新且不是大尺寸,则存储在共享首选项中。
  • 如果您的数据很大,则存储在数据库中。

现在你必须决定选择哪一个。

于 2012-11-05T11:00:58.520 回答