我正在从 PHP 服务读取 JSON 数据,并且每次该 JSON 的版本发生变化时,我都想将其存储在 Android 上(用新数据替换旧数据),JSON 仅用于填充 Spinner。
我的问题是: - JSON 有 36KB,可以将其存储在 Shared Preferences 上吗?有一个字符串还是我应该使用 SQLite 来存储它?
每月会有一次更新
我的数据示例:http: //zimp.hugo.webe.pt/api/occupations/list
我正在从 PHP 服务读取 JSON 数据,并且每次该 JSON 的版本发生变化时,我都想将其存储在 Android 上(用新数据替换旧数据),JSON 仅用于填充 Spinner。
我的问题是: - JSON 有 36KB,可以将其存储在 Shared Preferences 上吗?有一个字符串还是我应该使用 SQLite 来存储它?
每月会有一次更新
我的数据示例:http: //zimp.hugo.webe.pt/api/occupations/list
如果它是一个 json 字符串,有很多记录、值,那么我建议将此字符串解析为记录,然后将这些记录保存到 sqlite,这样您就不需要再次解析这个字符串,而且是不必要的。否则,将字符串保存到共享首选项中没有任何问题。
根据您的数据,您应该选择 SQLite。
可以将其存储在共享首选项中。
这实际上取决于您要存储的数据。
SQLite
大量相同的结构化数据应存储在 SQLite 数据库中,因为数据库是为此类数据设计的。由于数据是由数据库结构化和管理的,因此可以使用 SQL 等查询语言对其进行查询以获取符合特定条件的数据子集。这使得在数据中进行搜索成为可能。当然,管理和搜索大量数据会影响性能,因此从数据库读取数据可能比从 SharedPreferences 读取数据要慢。
共享首选项
SharedPreferences 是一个键/值存储,您可以在其中将数据保存在某个键下。要从存储中读取数据,您必须知道数据的键。这使得读取数据非常容易。但是,尽管存储少量数据很容易,但存储和读取大型结构化数据却很困难,因为您需要为每个数据定义键,而且您无法真正在数据中进行搜索,除非您有一定的概念命名键。
保存在共享首选项中不是问题..但请记住,SP主要将原始数据类型保存在键值对中......在您的情况下不是36kb的问题。:)
这取决于您的数据。
现在你必须决定选择哪一个。