Postman发送POST请求成功后调用GET接口返回null值如何解决?
问题原因与解决方案
核心原因
- 控制器的
createUser方法的User参数缺少@RequestBody注解
Spring Boot的@RestController中,若要将HTTP请求的JSON格式请求体自动反序列化为Java对象,必须在对应参数前添加@RequestBody注解。未加该注解时,Spring只会将URL参数、表单提交参数绑定到对象属性,你发送的JSON请求体内容不会被解析,因此name和birthDate字段都为默认的null值,只有后端自动生成的id被正常赋值。
次要潜在问题
- User类缺少无参构造方法
你当前的User类仅自定义了带三个参数的构造方法,Java不会自动生成默认无参构造方法,JSON序列化/反序列化框架反序列化时需要调用无参构造创建对象,也可能导致字段赋值失败。
修复步骤
- 修改控制器的POST接口,添加
@RequestBody注解:
@PostMapping("/users") public void createUser(@RequestBody User user) { User saved = service.save(user); }
- 给User类添加无参构造方法:
public User() { }
修改完成后重新发起POST请求,再调用GET接口就能正常获取到name和birthDate字段的值。
内容的提问来源于stack exchange,提问作者Babi B
相关产品推荐
相关产品推荐

