经过一些尝试,我通过将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>