Java序列VS JSON VS XML(Java Serialization vs JSON vs

2019-07-30 00:39发布

我想知道什么序列化机制传递对象通过网络打交道时,我们应该选择。 优缺点都有什么 ?

我知道大多数的我们在使用的时候JSONXMLAJAX ,因为传输格式是非常Javascript格式,加上JSON是凭借其体积小巧轻便漂亮,因此是Java系列化完全出表的?

Answer 1:

一般来说,重要的问题是客户端将收到的序列化对象 - 像(节点JS),Java客户端,未知/多个客户端的浏览器/ JavaScript引擎。

JSON - JSON语法基本上是JavaScript和因此与JS引擎将处理任何组件其解析很好 - 甚至复杂的数据结构将被转换为有效的“活”的对象。 JSON解析器为几乎任何语言的存在,很容易使用,即使不使用JS引擎时,(以谷歌GSON例如,它能够JSON转换成相应的轻松对象),这使得对跨语言交流一个很好的候选-例如在消息架构 。

XML - 共享许多JSON的好处 - 跨语言,重量轻等Adobe Flex的例如处理XML非常好,甚至比JSON更好。 这绝对是JSON合适的替代品。 我个人更喜欢JSON其JS的语法,但XML也不错。

Java序列 - 应该只考虑Java到Java的通信。 一个重要的注意的是, 类定义应在发送和接收端,而且通常都不会被传递整个对象获益良多。 我不排除RMI作为通信协议,它简化了开发。 然而所得到的应用程序的组件将被硬连接这将使它非常难以更换。

还有一个音符 - 序列化一般有其开销。 然而,当通过网络进行的通信中的瓶颈往往是网络而不是所述序列化/反序列化本身。



Answer 2:

我认为这取决于。 如果你发送HTTP请求或东西,然后JSON或XML显然是一个不错的选择。 如果你只是发送一个Java对象通过TCP套接字对一些分布式算法或东西我认为Java序列化更容易/更好



Answer 3:

虽然序列化在网络上XML和JSON会工作。 这取决于这些信息的消费者。

  • 如果消费者使用Ajax要求的一些信息并呈现在屏幕上什么浏览器,一般杰森其已经在Javascript对象格式是最好的选择并没有转换为兼容JavaScript对象的开销。 事实上,许多的Ajax库(如jQuery的)为JSON很好的支持。

  • 如果消费者可能会或可能不会在Java中其他应用程序,那么XML是喜欢序列化机制。 Web服务使用XML非常沉重。

  • 如果你的消费是另一个Java程序,然后肯定Java序列化优先选项(如RMI)。 因此,它没有出来:-)。

但是,是有XML和JSON之间的模糊界限。 我这里所说的是一般的做法。 这里是一个很好的文章把所有的方面对XML VS杰森。



Answer 4:

我认为,作为开发商,我们不必照顾响应对象的序列化的。 但如果我们考虑JSON,它有体面advantanges在XML选择。

  1. JSON响应犯规不需要编码不像XML响应。
  2. 处理和JSON的处理速度相比,XML,因为它不被解析。
  3. 对AJAX XML响应总是因此编码处理需要时间。
  4. 使用jQuery JSON最适合的UI相关的编码和更快。
  5. 处理庞大的数据,例如:从服务器获取索引数据/,JSON处理速度更快。


文章来源: Java Serialization vs JSON vs XML