java - Spring JSON 请求正文未映射到 Java POJO

标签 java json spring spring-mvc jackson

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

这是@RestController 接口(interface)

@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"}}

Content-Type 指定为 application/json

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

有人知道为什么我没有得到预期的结果吗?

修复

原来,请求体的值并没有传入,因为我不仅需要在我的接口(interface)中,而且在实际的方法实现中都需要有@RequestBody注解。有了这个,问题就解决了。

最佳答案

原来,请求体的值并没有传入,因为我不仅需要在我的接口(interface)中,而且在实际的方法实现中都需要有@RequestBody注解。有了这个,问题就解决了。

关于java - Spring JSON 请求正文未映射到 Java POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960117/

相关文章:

java - 从表数据模型生成动态碧 Jade 报告

java - 未能找到 getChildren(),遵循 JavaFX WebKit 的 Oracle 官方指南

java - 我对配置的假设是否正确?

javascript - 为基于 Web 的应用程序禁用多用户登录

java - 在 spring AMQP 中使用消息监听器适配器获取消息对象

java - 在 Parse Android 的一次调用中获取多个对象

java - 如何设置 Sonar 来识别缓慢的测试并导致构建失败?

json - 冷融合9 : Using serializeJson on Hibernate entity encodes numeric properties as strings

javascript - D3.js:连接 json 和 csv 不起作用

javascript - 如何获取 json 返回数据的长度并运行 for 循环