Apache Camel:使用camel方法将JSON转换为POJO

时间:2012-04-17 12:39:45

标签: java json apache-camel

我有一个REST服务器,它在响应正文中发送JSON。我最近开始阅读Apache Camel。我使用以下命令将请求发送到我的REST服务。

from("direct:start").setHeader("token", simple("234da"))
                            .to("http://localhost:8088/foo/bar/?foo1=bar1");

现在响应将是一个JSON,有没有什么办法可以在to()之前使用某种方法将这个JSON直接放到POJO中(类似这样)?

to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO();

我更喜欢非Spring解决方案。

由于

2 个答案:

答案 0 :(得分:1)

Apache Camel提供了一个组件来组合和解组与JSON之间的POJO。

在你的情况下,它将是:

 from("direct:start").setHeader("token", simple("234da"))
 .to("http://localhost:8088/foo/bar/?foo1=bar1")
 .unmarshal().json();

顺便说一句,您可能需要配置您的json库来执行此操作,我建议您查看the official configuration

答案 1 :(得分:1)

我身边的细节很少-尽管迟到了

创建jsonFormatter,然后解组所需的类
JsonDataFormat jsonDataFormat = new JsonDataFormat(JsonLibrary.Jackson);
可以用于编组

from("direct:consume-rest")
.log("calling bean method...")
.to("http://localhost:8080/greeting?name=baba")
//.process(svProcessor) // any extra process if you want
.unmarshal().json(JsonLibrary.Jackson, Greeting.class)
.bean(GreetingHelper.class, "print")
.log("converted to bean ...")
.end()
;

Helper类方法
public void print (@Body Greeting greeting) {