Apache Camel中XmlJsonDataFormat的替代方案

8
在Apache Camel中,我试图使用XmlJsonDataFormat将XML快速转换为JSON。然而,XMLJSON(http://camel.apache.org/xmljson.html)已被弃用,因此除了创建处理器之外,我不确定最佳的转换方法是什么。
有人知道XmlJsonDataFormat的替代方法吗?

你可以看一下Dozer,它应该能够在XML和JSON之间进行转换。 - Erik Karlstrand
在研究jaxb和jackson的组合后,我刚看到了你的评论。我成功地让它工作了,并会记住Dozer,因为它看起来是一个非常方便的映射器/转换器。 - namp10010
1个回答

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");

Maven依赖

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

这段代码无法编译。你还有这个项目吗?它说JacksonDataFormat类上没有方法。 - OldProgrammer
@老程序员,抱歉这么久了,我没有源代码。不过,你是否包含了所有必需的依赖项?错误可能意味着找不到依赖项。 - namp10010

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接