繁体   English   中英

将Apache Camel JSON数据格式从XML转换为Java DSL

[英]Convert Apache Camel JSON data format from XML to Java DSL

我们正在将传统的骆驼路线从XML转换为Java DSL,但无法使用用于编组的JSON / Jackson数据格式。 这就是我们在XML中的处理方式:

<camelContext id="camelContext">
    <dataFormats>
        <json id="json"
            library="Jackson"
            allowJmsType="true"
            disableFeatures="WRITE_DATES_AS_TIMESTAMPS"/>
    </dataFormats>
</camel>

 <route id="myRoute">
    <from uri="seda:inqueue"/>
      <marshal>
          <json library="Jackson" />
      </marshal>
      <to  uri="seda:outqueue />
  </route>

...这是Java版本(到目前为止)...

@Bean(name = "json")
    public JacksonDataFormat jacksonDataFormat() {
        JacksonDataFormat format = new JacksonDataFormat();
        format.setAllowJmsType(true);
        format.disableFeature(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        return format;
}

from("seda:inqueue")
    .marshal(json)
    .to("seda:outqueue");

我在正确的道路上吗?

另外,这两种方法有什么区别? 我的猜测是,第一个将Json TEXT转换为字节流,第二个将对象转换为Json TEXT; 准确吗?

from("seda:inqueue")
    .marshal(json)
    .to("seda:outqueue");

from("seda:inqueue")
    .json(JsonLibrary.Jackson)
    .to("seda:outqueue");

我建议使用Camel XML Json组件来实现此目的,而不是盲目地迁移它们。 XML JSON组件

.marshal可用于基于BeanIO流,CSV记录等配置生成任何格式。.json仅可用于生成JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM