Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ApacheCamel中从Json检索对象_Java_Json_Spring_Rest_Apache Camel - Fatal编程技术网

Java 在ApacheCamel中从Json检索对象

Java 在ApacheCamel中从Json检索对象,java,json,spring,rest,apache-camel,Java,Json,Spring,Rest,Apache Camel,我正在使用apachecamel和springboot构建一个servlet服务。我有一个REST端点,在这里我接收json对象。我想读取json并将其映射到代码中的POJO中。这是我的路由生成器: public class MyRouteBuilder extends RouteBuilder{ @Override public void configure() throws Exception { restConfiguration() .compone

我正在使用
apachecamel
springboot
构建一个servlet服务。我有一个REST端点,在这里我接收json对象。我想读取json并将其映射到代码中的POJO中。这是我的路由生成器

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;
    }
}
这是我的用户类

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;
    }
}
我跟着。 我想做的是将类似{“id”:“123”,“name”:“elly”,“age”:“29”}的json注入到我的用户类实例中。如何从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绑定到pojo

请参阅以下部分的其他示例:


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

将camel jackson添加到类路径,以便它可以将json绑定到pojo。请参阅下面的一些示例:这就成功了。如果你把你的评论作为答案,我可以选择它作为正确答案。非常感谢:)对于我来说,这种方法总是以一个
null
主体结束。这是正确的,我不得不强调camel-jackson依赖,spring-boot-jackson依赖是不够的。