代码之家  ›  专栏  ›  技术社区  ›  namp10010

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

  •  8
  • namp10010  · 技术社区  · 7 年前

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

    有人知道XmlJsonDataFormat的替代品吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   namp10010    7 年前

    经过一些尝试,我通过将Jaxb和Jackson结合起来,将XML解组为POJO,然后将POJO解组为JSON,从而获得了所需的内容。正如noMad所指出的,我本可以试试推土机( 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>