我有一个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解决方案。
由于
答案 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) {