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