替代Apache Camel中已弃用的XmlJsonDataFormat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替代Apache Camel中已弃用的XmlJsonDataFormat相关的知识,希望对你有一定的参考价值。

在Apache Camel中,我试图使用XmlJsonDataFormat从XML快速转换为JSON。但是XMLJSON(http://camel.apache.org/xmljson.html)已经弃用了,所以我不确定除了创建处理器之外,进行转换的最佳方法是什么。

有没有人知道XmlJsonDataFormat的替代品?

答案

经过一些尝试,我已经设法得到了我需要的东西,将Jaxb和Jackson组合为unmarshal XML到POJO然后POJO到JSON。正如noMad所指出的,我本可以尝试过Dozer(http://camel.apache.org/dozer.html),但没有时间这样做。

    JacksonDataFormat jacksonDataFormat = new JacksonDataFormat();
    jacksonDataFormat.setPrettyPrint(true);
    jacksonDataFormat.enableFeature(SerializationFeature.WRAP_ROOT_VALUE);

    from("file:src/main/resources/xml/in?noop=true").routeId("lixi-to-json-route").
        unmarshal(new JaxbDataFormat(JAXBContext.newInstance(ApplicationBatch.class))).
        marshal(jacksonDataFormat).
        to("file:src/main/resources/xml/out?fileName=${file:onlyname.noext}.json");

Maven依赖

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jaxb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jackson</artifactId>
    </dependency>

以上是关于替代Apache Camel中已弃用的XmlJsonDataFormat的主要内容,如果未能解决你的问题,请参考以下文章

似乎无法关闭 php 中已弃用的错误

GeotriggerHandlerReceiver 在 PlotProjects 中已弃用。有啥替代方法可以使用?

ConnectivityManager.getActiveNetworkInfo() / NetworkInfo 在 API 29 中已弃用。有啥替代方案?

更新 Swift 中已弃用的 Firebase 函数

NSControl 的 setCellClass 在 OS X 10.10 中已弃用,有啥替代方法可以覆盖 NSTextField 的单元格类?

Magnolia 的 AccessDefinition 类中已弃用的角色