从Apache Camel中的Json检索对象

时间:2016-02-18 17:20:10

标签: java json spring rest apache-camel

我使用Apache CamelSpring Boot来构建servlet服务。我有一个REST端点,我收到json对象。我想读取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",&## 34; age":" 29"}到我的User类的实例中。如何从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());
       }
});

1 个答案:

答案 0 :(得分:2)

将camel-jackson添加到类路径中,以便将json绑定到pojo。

请参阅以下其他一些示例: https://github.com/apache/camel/tree/master/examples

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