Spring中@RequestBody接收参数始终为null的问题排查求助
Spring @RequestBody接收JSON参数为null的解决方案
问题核心原因及修复步骤:
- 必须添加无参构造函数
Spring依赖Jackson等JSON框架反射实例化实体类,你的messageStructure只定义了带参数的构造函数,导致框架无法创建对象,最终参数为null。
修复代码:
class messageStructure { String MsgData; // 新增无参构造函数 public messageStructure() {} // 修正构造函数中的拼写错误 public messageStructure(messageStructure req) { this.MsgData = req.getMsgData(); } // 确保getter/setter符合JavaBean规范 public String getMsgData() { return MsgData; } public void setMsgData(String msgData) { MsgData = msgData; } }
修正变量拼写不一致问题
原构造函数中使用Msgdata(d小写),但成员变量是MsgData(D大写),大小写不匹配导致属性赋值失败,统一拼写即可。校验getter/setter命名规范
确保属性MsgData对应的getter是getMsgData()、setter是setMsgData(String msgData),不符合规范的命名会导致Jackson无法映射JSON字段。Postman请求修正
- 强制设置请求头
Content-Type: application/json,这是Spring识别JSON请求的必要条件; - 移除JSON末尾多余的逗号,修正后的请求体:
{ "MsgData": "Sample Message Data" }
内容的提问来源于stack exchange,提问作者vaibhav
相关产品推荐
相关产品推荐

