为了账号安全,请及时绑定邮箱和手机立即绑定

JAXB 或 Jackson 用于 xml 解组?

JAXB 或 Jackson 用于 xml 解组?

料青山看我应如是 2023-03-31 14:42:04
接收XML响应,有两种主要解决方案将 xml 解码为 DTO 对象。为什么一个人应该JAXB更喜欢jackson,或者相反?贾克斯:Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xmlString));unmarshaller.unmarshal(reader, DtoObject.class);杰克逊:mapper = new ObjectMapper() / new XmlMapper();mapper.readValue(xmlString, DtoObjectc.class);
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

从功能上来说,没有区别。全部用于 java 对象 <--> xml 对象。但是,存在性能差异。我已经在 JAXB 和 Dozer Mapper 之间使用 Jmeter 进行了测试。结果显示 JAXB 的效率约为 50%。我不知道杰克逊怎么样。但是从我个人的经验来看。我更喜欢 JAXB。供你参考。



查看完整回答
反对 回复 2023-03-31
?
大话西游666

TA贡献1817条经验 获得超14个赞

在我看来,我会使用JAXB,原因如下。

  1. 它相当成熟,是 JDK 的一部分。

  2. 我不需要第三方额外的库来使用

  3. 与 JAXB 相比,Jackson2 XML 转换是新的,JAXB 在行业中已经存在很长时间,并且有很多社区。

但是我并不是说哪个好哪个坏。同样,它是开发人员使用的选择。


查看完整回答
反对 回复 2023-03-31
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

XmlMapper 需要较少的配置,并且在像PascalCase映射这样的边缘情况下它可以在 jaxb2 不工作时工作。


<dependency>

    <groupId>com.fasterxml.jackson.dataformat</groupId>

    <artifactId>jackson-dataformat-xml</artifactId>

    <version>2.9.8</version>

</dependency>

使用与 com.fasterxml 中的其他内容相同的版本。


查看完整回答
反对 回复 2023-03-31
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信