在Apache Camel中,我试图使用XmlJsonDataFormat将XML快速转换为JSON。然而,XMLJSON(http://camel.apache.org/xmljson.html)已被弃用,因此除了创建处理器之外,我不确定最佳的转换方法是什么。
有人知道XmlJsonDataFormat的替代方法吗?
有人知道XmlJsonDataFormat的替代方法吗?
经过一些尝试,我成功地通过结合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>