Apache Camel 中已弃用的 XmlJsonDataFormat 的替代方法

nam*_*010 7 java apache-camel xml-to-json

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

有谁知道 XmlJsonDataFormat 的替代方案?

nam*_*010 2

经过一番尝试,我成功地通过组合 Jaxb 和 Jackson 将 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");
Run Code Online (Sandbox Code Playgroud)

Maven 依赖项

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jaxb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jackson</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)