JAXB 或 Jackson 用于 xml 解组?

接收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);


料青山看我应如是
浏览 140回答 3
3回答

慕娘9325324

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

大话西游666

在我看来,我会使用JAXB,原因如下。它相当成熟,是 JDK 的一部分。我不需要第三方额外的库来使用与 JAXB 相比,Jackson2 XML 转换是新的,JAXB 在行业中已经存在很长时间,并且有很多社区。但是我并不是说哪个好哪个坏。同样,它是开发人员使用的选择。

叮当猫咪

XmlMapper 需要较少的配置,并且在像PascalCase映射这样的边缘情况下它可以在 jaxb2 不工作时工作。<dependency>&nbsp; &nbsp; <groupId>com.fasterxml.jackson.dataformat</groupId>&nbsp; &nbsp; <artifactId>jackson-dataformat-xml</artifactId>&nbsp; &nbsp; <version>2.9.8</version></dependency>使用与 com.fasterxml 中的其他内容相同的版本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java