存储JSON对象:SQLite与序列化到磁盘

时间:2013-03-13 21:45:37

标签: java android json sqlite

将构建一个应用程序,它将从Web服务中提取JSON对象,数量为数百个,每个相对较小,每个20kb。

该应用程序除了显示这些POJO,下载新的和更新的POJO并删除过时的POJO之外不会做太多其他事情。持久存储这些对象的首选方法是什么?我猜两个主要的竞争者是将它们存储在SQLite数据库中,可能使用ORMLite来减少开销,或者只是将对象序列化到磁盘,可能在一个大文件中并使用非常快的JSON解析器。

任何想法会是什么首选方法?

2 个答案:

答案 0 :(得分:1)

诸如SQLLite之类的dbms应该具有查询,索引和排序功能(以及其他标准SQL DBMS功能),您应该考虑是否需要其中任何一项。您计划在生产环境中拥有多少个对象?如果说百万磁盘序列化方法可能无法扩展。

答案 1 :(得分:1)

您可以考虑将CouchDB用作移动客户端和Web服务之间的缓存。

CouchDB必须在互联网上的服务上运行,从webservice缓存对象。在客户端,您可以使用TouchDB-Android:https://github.com/couchbaselabs/TouchDB-iOS/wiki/Why-TouchDB%3F。 TouchDB-Android可以自动与Internet上运行的CouchDB inatance同步。然后,应用程序本身将单独访问TouchDB。 TouchDB会自动检测是否有潮湿连接,因此即使没有互联网,您的应用程序也会继续运行。

优点: - 缓存JSON调用 - 客户端仍在使用互联网连接,当互联网连接再次启动时自动同步。 - 加载您的网络服务,您可以扩展。

我们之前使用此设置允许Android软件无缝工作,即使互联网连接频繁掉线且我们从中访问数据的服务非常缓慢且容量有限。