使用 Java 和 JavaScript 处理消息:JSON 还是 XML?

Posted

技术标签:

【中文标题】使用 Java 和 JavaScript 处理消息:JSON 还是 XML?【英文标题】:Handling messages with Java and JavaScript: JSON or XML? 【发布时间】:2012-01-17 20:23:33 【问题描述】:

我目前正在处理一个需要一些服务器-客户端通信的项目。我们计划在服务器端使用 Websockets 和 Java 服务器(Jetty)。因此,发送的消息必须使用来自服务器的 Java 和来自客户端的 javascript 进行解释。

现在我们正在考虑一个协议以及消息应该具有的结构。我们已经有了一个使用 XML 消息的参考实现。但由于 JSON 旨在与 JavaScript 一起使用,我们也在考虑使用 JSON-Strings 的可能性。

消息将包含由 XML 字符串和处理该数据所需的一些元信息组成的数据(即,将其存储在数据库中,重定向到其他客户端...)。如果消息处理(解析和创建)在服务器端和客户端都能够简单快速地处理,这一点很重要,因为应用程序应该具有实时速度。

由于我们没有时间测试这两种技术,我很乐意根据个人经验或技术方面提出一些建议。其中一种技术是否比另一种更有用,或者其中一种技术有什么缺点?

提前致谢。

【问题讨论】:

【参考方案1】:

在我看来,JSON 更容易使用。访问 data.foo.bar.name 之类的内容比尝试使用 XML 中的相应节点要容易得多。

XML 可以用于数据文件,尽管仍然存在问题,但对于客户端-服务器通信,我强烈推荐使用 JSON。

【讨论】:

与 XML 相比,JSON 更轻量级,因此在性能方面更好。【参考方案2】:

您正在打开一罐蠕虫(再次,不是第一次)。

看看这个JSON vs XML。在 *** 上的快速搜索也很好。

这个问题可能会重复。喜欢这个*** XML vs JSON。

最终答案保持不变。这取决于你。虽然我同意那里的许多 cmets 有时,XML 是矫枉过正(有时不是)。

【讨论】:

【参考方案3】:

我同意 Kolink,

原因,最好使用JSON,因为XML有一个大的Header,这意味着每次传输都有很大的开销。

对于 iosandroid,您必须使用 JSON 而不是 WLAN XML。

【讨论】:

【参考方案4】:

我同意 Kolink 的观点,但如果您已经有了 XML 方案,我会使用 XML 来为您省去 Java 方面的一些麻烦。这真的取决于谁做的工作最多。 此外,JSON 更紧凑,因此您可以使用它的格式节省带宽。

Java中似乎有一些解析JSON的库,所以切换格式可能不会太难。 http://json.org/java/

【讨论】:

以上是关于使用 Java 和 JavaScript 处理消息:JSON 还是 XML?的主要内容,如果未能解决你的问题,请参考以下文章

使用 BOSH 时处理 JavaScript 中丢失的消息

如何将 Bridge 消息从 Java (Android) 发送到 JavaScript

WebViewJavascriptBridge

使用消息传递接口在 Python 中实现多处理 [关闭]

Java Dwr3实现消息推送步骤详解

消息队列和事件循环