[我正在Kotlin中创建一个Android应用来练习英语单词的含义。为此,我需要在应用程序中存储数据,其中包括一个英语单词列表,对于每个单词,我需要存储其含义和其他属性。例如:
[
{
"word": "WORD1",
"meaning": "M1",
"attr1": "A11",
"attr2": "A12",
"attr3": "A13",
},
{
"word": "WORD2",
"meaning": "M2",
"attr1": "A21",
"attr2": "A22",
"attr3": "A23",
},
{
"word": "WORD3",
"meaning": "M3",
"attr1": "A31",
"attr2": "A32",
"attr3": "A33",
},
]
启动应用程序时,它将加载存储的数据并将其存储到集合中。稍后,根据用户的输入和选择,该应用程序将更改某些属性。最终,甚至在应用程序运行时,数据需要存储回去。
为此,我考虑使用具有此数据的JSON格式文件,并进行动态更改。那可能吗?如果是这样,这是正确的方法吗?考虑到在应用程序运行和还原时需要更改数据(这会导致性能问题吗?)
有更好的方法吗?以及如何?
更新 :(在下面凯文回答之后)
[我考虑使用JSON文件存储初始数据,并且该应用程序首次运行时,它将从JSON文件中获取数据并使用SQL使用它创建数据库。 JSON文件还将包含版本。
为此,我将JSON文件存储在资产中,并且应用程序将在创建数据库后将其删除。
[当JSON文件有更新(版本递增)时,应用程序将更新数据库并在此之后删除新的JSON文件。
这是个好主意吗?用户可以在将资产文件从设备中删除之前访问资产文件吗?如果是,是否可以隐藏它?
通常,对于此类任务,最好使用SQLite,这是一个自包含的数据库,可提供常规的SQL操作,并允许您的数据在应用程序启动之间持久存在,而无需管理JSON文件的加载,读取和写入。