gpt4 book ai didi

java - 在 Apache Camel 中从 Json 中检索对象

转载 作者:行者123 更新时间:2023-11-30 08:40:45 28 4
gpt4 key购买 nike

我正在使用 Apache CamelSpring Boot 构建一个 servlet 服务。我有一个接收 json 对象的 REST 端点。我想读取 json 并将其映射到我的代码中的 POJO。这是我的RouteBuilder:

public class MyRouteBuilder extends RouteBuilder{

@Override
public void configure() throws Exception {

restConfiguration()
.component("servlet")
.host("localhost")
.port("8080")
.bindingMode(RestBindingMode.auto);

rest("/say").post("/json").type(User.class).to("direct:json");
from("direct:json").someUsefulMethod();
}
}

这是我的用户类:

public class User {
private String id;
private String name;
private String age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}
}

我关注了the Apache documentation .我想要做的是将像 {"id":"123", "name":"elly", "age":"29"} 这样的 json 注入(inject)到我的用户类的实例中。如何从 REST 请求中获取数据?
谢谢大家。

回答后编辑:为了完整性,这是 MyRouteBuilder 类中的最终示例代码:

    from("direct:json").process(new Processor() {
public void process(Exchange exchange) throws Exception {
User body = exchange.getIn().getBody(User.class);
System.out.println("Input object: " + body.getName() + ", " + body.getAge());
body.setAge("35");
exchange.getIn().setBody(body);
System.out.println("Output object: " + body.getName() + ", " + body.getAge());
}
});

最佳答案

将 camel-jackson 添加到类路径中,以便它可以将 json 绑定(bind)到 pojo。

查看其他一些示例: https://github.com/apache/camel-examples/tree/master/examples

您可以在 POJO 上使用 jackson 注释来微调绑定(bind)

关于java - 在 Apache Camel 中从 Json 中检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35488220/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com