在Flutter中存储和替换Json数据

时间:2020-04-19 17:37:18

标签: flutter dart

我有一些从API中获取的Json数据,如果用户没有Internet连接,我想将其存储以备后用。但是我不确定最好的选择是保存它。 我当时正在考虑使用sqflite,但是在用例中,我将需要完全替换所有条目,因此我将不得不删除并重写大约300个columns,分为5个表,这很规律,我不确定是否理想。

我还考虑过仅将Json文件保存到设备存储中,甚至使用共享首选项。

你们中的任何一个都对我最好的选择有经验/想法吗?如果我使用sqflite会不会很慢?谢谢

1 个答案:

答案 0 :(得分:0)

如果要为用户创建脱机缓存,我认为使用sqflite是持久数据的最佳选择。

使用共享首选项会比较慢,因为NSUserDefaults及其Android同类产品不是为高性能的读/写操作而设计的,因此,如果您处理大量数据,则所有插入,更新和查询操作通常都会较慢。

在我看来,将Json文件保存到设备存储将是最好的选择,如果您以后需要查询它,则必须进行序列化/反序列化,而如果您使用数据库,则可以快速查询数据和实例化模型对象等。如果可能的话,我建议您采用分层方法(使用存储库来填充View模型或Bloc等,并使用单独的DB Manager / Service等。