Spring JSON请求主体未映射到Java POJO


问题内容

我正在使用Spring来实现RESTful
Web服务。端点之一将JSON字符串作为请求正文,我希望将其映射到POJO。但是,现在看来,传入的JSON字符串不是属性映射到POJO。

这是@RestController接口

@RequestMapping(value="/send", headers="Accept=application/json", method=RequestMethod.POST)
public void sendEmails(@RequestBody CustomerInfo customerInfo);

数据模型

public class CustomerInfo {
    private String firstname;
    private String lastname; 
    public CustomerInfo() {
        this.firstname = "first";
        this.lastname = "last";
    }

    public CustomerInfo(String firstname, String lastname)
    {
        this.firstname = firstname;
        this.lastname = lastname;
    }

    public String getFirstname(){
        return firstname;
    }

    public void setFirstname(String firstname){
        this.firstname = firstname;
    }

    public String getLastname(){
        return lastname;
    }

    public void getLastname(String lastname){
        this.lastname = lastname;
    }
}

最后是我的POST请求:

{"CustomerInfo":{"firstname":"xyz","lastname":"XYZ"}}

内容类型指定为application / json

但是,当我打印出对象值时,默认值(“ first”和“ last”)被打印出来,而不是我传入的值(“ xyz”和“ XYZ”)

有谁知道为什么我没有得到我期望的结果?

固定

事实证明,没有传入请求主体的值,因为我不仅需要在接口中而且在实际方法实现中都需要@RequestBody批注。一旦有了,问题就解决了。


问题答案:

事实证明,没有传入请求主体的值,因为我不仅需要在接口中而且在实际方法实现中都需要@RequestBody批注。一旦有了,问题就解决了。