当前位置: 首页 > 面试题库 >

Java序列化vs JSON vs XML

洪通
2023-03-14
问题内容

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

我知道我们大多数时候会使用JSONXMLAJAX因为传输格式几乎是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作为通信协议,它确实简化了开发。但是,生成的应用程序组件将很难耦合,这将使其很难替换。

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



 类似资料:
  • 问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并

  • 主要内容:1 Java序列化和反序列化,2 Java序列化的优点,3 java.io.Serializable接口,4 Java ObjectOutputStream,5 Java ObjectInputStream,6 Java序列化的例子,7 Java反序列化的例子1 Java序列化和反序列化 Java中的序列化是一种将对象状态写入字节流的机制。它主要用于Hibernate,RMI,JPA,EJB和JMS技术。 序列化的反向操作称为反序列化,其中字节流被转换为对象。序列化和反序列化过程与平台

  • 上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能

  • 目标 了解对象序列化是什么以及为什么需要使用它 了解让对象可序列化,序列化对象和去序列化对象的语法 能够在序列化场景中处理同一个对象的不同版本 什么是对象序列化? 在序列化 的过程中,对象和它的元数据(比如对象的类名和它的属性名称)存储为一种特殊的二进制格式。将对象存储为这种格式(序列化 它)会保留所有必要的信息,使您在需要时能够重建(或去序列化)对象。 对象序列化的两个主要使用场景包括: 对象持

  • 问题内容: 我想序列化Arraylist类型 ,并且该类包含两个原始类型的Arraylist 我怎样才能做到这一点? 提前非常感谢 问题答案: 如果要使用Serializable,应该没有问题,因为ArrayList就像String和每个基本类型一样都是Serializable的。应该做。您可以在此处阅读有关此方法的更多信息。但是,还有许多其他序列化选项。因此,请更具体。

  • 如题目所述,想请教一下大佬们在Java中序列化与反序列化的意义是什么,如何理解Java的序列化和反序列化?

  • 问题内容: 我已经开始在我的第一个android应用程序上进行工作,并且具有处理多层图像的应用程序。我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些层的任何选项,例如基于文本的层)。 无论如何,我已经确保需要写入文件的类是“可序列化的”,但是由于android.graphics.Bitmap不可序列化这一事实而遇到了一些障碍。以下代码实质上将位图作为PN

  • 本文向大家介绍java对象的序列化和反序列化,包括了java对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java对象的序列化和反序列化,供大家参考,具体内容如下 1. 什么是序列化        将对象转换为字节流保存起来,比如保存到文件里,并在以后还原这个对象,这种机制叫做对象序列化。(补充一句:把对象保存到永久存储设备上称为持久化) 2. 怎么实现序列化