Java Serialization vs JSON vs XML
我想知道在处理通过网络传输对象时,我们应该选择哪种序列化机制。有什么优点和缺点?
我知道大多数时候我们使用或因为传输格式几乎是格式,并且加上非常轻量级,占用空间小,因此序列化完全不在表中吗?JSON
XML
AJAX
Javascript
JSON
Java
我想知道在处理通过网络传输对象时,我们应该选择哪种序列化机制。有什么优点和缺点?
我知道大多数时候我们使用或因为传输格式几乎是格式,并且加上非常轻量级,占用空间小,因此序列化完全不在表中吗?JSON
XML
AJAX
Javascript
JSON
Java
一般来说,重要的问题是哪个客户端将接收序列化的对象 - 浏览器/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作为通信协议,它确实简化了开发。然而,由此产生的应用程序组件将是硬耦合的,这将使它很难更换。
还有一点需要注意 - 序列化通常有其开销。但是,当通过网络执行通信时,瓶颈通常是网络,而不是序列化/反序列化本身。
我想这要视情况而定。如果您要发送http请求或其他内容,那么JSON或XML显然是一个不错的选择。如果你只是通过tcp套接字发送一个java对象,用于一些分布式算法或其他东西,我认为java序列化更容易/更好