接收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。供你参考。
大话西游666
TA贡献1817条经验 获得超14个赞
在我看来,我会使用JAXB,原因如下。
它相当成熟,是 JDK 的一部分。
我不需要第三方额外的库来使用
与 JAXB 相比,Jackson2 XML 转换是新的,JAXB 在行业中已经存在很长时间,并且有很多社区。
但是我并不是说哪个好哪个坏。同样,它是开发人员使用的选择。
叮当猫咪
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 中的其他内容相同的版本。
添加回答
举报
0/150
提交
取消