通常,重要的问题是哪个客户端将接收序列化的对象-浏览器/ 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作为通信协议,它确实简化了开发。但是,生成的应用程序组件将很难耦合,这将使其很难替换。
还有一点要注意-序列化通常会有开销。但是,当通过网络执行通信时,瓶颈通常是网络而不是串行化/反序列化本身。



