一尘不染

Java序列化vs JSON vs XML

json

我想知道在处理通过网络传输的对象时应该选择哪种串行化机制。优缺点都有什么 ?

我知道我们大多数时候会使用JSONXMLAJAX因为传输格式几乎是Javascript格式,加上JSON占用空间很小,而且重量很轻,因此Java序列化完全不在表格之列吗?


阅读 193

收藏
2020-07-27

共1个答案

一尘不染

通常,重要的问题是哪个客户端将接收序列化的对象-浏览器/ JavaScript引擎,例如(node-js),Java客户端,未知/多个客户端。

JSON-JSON语法基本上是JavaScript,因此具有JS引擎的任何组件都可以很好地处理其解析-
甚至复杂的数据结构也可以有效地转换为“活动”对象。JSON解析器几乎适用于任何语言,即使不使用JS引擎也很容易使用(例如,使用Google
Gson,它能够轻松地将JSON转换为相应的对象),这是进行跨语言交流的理想选择-
例如在消息传递体系结构中

XML-共享JSON的许多优点-跨语言,轻量级等。例如Adobe
Flex可以很好地处理XML,甚至比JSON更好。绝对是JSON的合适替代品。我个人更喜欢JSON作为其JS之类的语法,但是XML也很好。

Java序列化-仅应用于Java到Java的通信。一个重要的注意事项是, 类定义
应该在发送端和接收端,并且通常不会通过传递整个对象而获得太多收益。我不会排除RMI作为通信协议,它确实简化了开发。但是,生成的应用程序组件将很难耦合,这将使其很难替换。

还有一点要注意-序列化通常会有开销。但是,当通过网络执行通信时,瓶颈通常是网络而不是串行化/反序列化本身。

2020-07-27