我为 android 编写应用程序,它将位于 android 设备上的数据库与外部数据库同步。简而言之,Android会生成一些数据并将其存储在自己的数据库中。Android 有时会通过互联网将此数据发送到 HTTP 服务器。我想知道,发送这些数据 XML 或 JSON 会更好吗?我知道 JSON 比 XML 轻得多,但 XML 对 JSON 有什么优势吗?什么是更好的同步数据库?
4 回答
我会说 json.... 因为 json 更轻,如果您正在寻找的只是传递数据,那么 json 是更快、更简单的方法。我现在使用 json 和 xml 有一段时间了,但我还没有找到任何理由更喜欢 xml 而不是 json,除非 XML“看起来”更好......
无论如何,如果您使用现有的解析和编码工具(例如 JAXB),从 json 到 xml 的转换应该花费您 2-3 行代码,sio 您也可以切换另一个...
您还没有说明这是单用户应用程序还是多用户应用程序......分布式数据同步不是一个简单的问题要解决。
如果这是单用户解决方案,我会调查您的数据库是否支持复制。如果您的数据集很小,我也会考虑简单地发布数据库转储文件。这两种解决方案都避免了将数据序列化进出 XML/JSON 的性能开销。也避免了数据库类型支持的讨厌。
最后,对于“左字段”解决方案,为什么不考虑将数据存储在couchdb中?内置客户端服务器复制。
- 安卓-Couchdb
- 有一个名为pouchdb的新 javascript 客户端,值得评估。
我会推荐 JSON,因为它比 XML 更轻量级,并且在我看来是更容易处理的格式。要么完成这项工作。其他要考虑的事情是您在 HTTP 服务器上使用的服务来拦截数据。你是自己写的吗?使用一种可能比另一种格式更好地工作的预先存在的格式?
还有没有理由不直接连接到远程数据库并以这种方式更新它?我知道经常这样做可能会减慢应用程序的速度并产生大量数据使用,但如果你只是像你计划的那样谨慎地这样做,那应该不是什么大问题。
在非常大的数据集中,XML 会稍微重一些,因为它需要开始和结束标记。还有一个问题是标签之间的数据有多大。如果您在开始标签和结束标签之间有大量数据,那么这会“软化”效果。如果您没有处理大量数据,那么我只会使用对客户端和服务器都有更好的本机库支持的任何一个。对于中小型数据集,我认为差异不会很明显。