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

10

我有一个REST服务器,会在响应体中发送JSON数据。最近我开始学习Apache Camel。我使用以下方法向我的REST服务发送请求。

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

现在响应将是一个JSON,有没有办法在使用to()方法之前,直接将其转换为POJO对象的方法(类似这样的方法)?
to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO();

我希望使用非Spring解决方案。

谢谢。

2个回答

1

以下是我的一些细节 - 尽管有点晚

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

from("direct:consume-rest")
.log("调用bean方法...")
.to("http://localhost:8080/greeting?name=baba")
//.process(svProcessor) // 如果需要任何额外处理
.unmarshal().json(JsonLibrary.Jackson, Greeting.class)
.bean(GreetingHelper.class, "print")
.log("转换为bean ...")
.end()
;

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


0

Apache Camel 提供了一个组件,用于将 POJO 对象与 JSON 之间进行编组和解组。

在您的情况下,应该是:

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

顺便提一下,您可能需要配置您的json库来实现它,我建议您查看官方配置


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接