@RequestBody 实体类为null

1.controller类


@RestController
public class qudaoController {
    @PostMapping(value = "/check")
    public ResultData check(@RequestBody CommitSure commitSure) {
     return null;
    }
}

2.实体类

@Data
public class CommitSure {
    private String RequestId;
    private String Version;

3.用postman发送post请求,debug controll中实体类的数据为null

{
        "RequestID": "xxx555",
        "Version": "1.0.0"    
}

CommitSure commitSure得到参数都为null

4.@responseBody默认json转换

1.请求的json数据会存到request的body中,进入controlle
依据是:
    
    @PostMapping(value = "/check")
    public ResultData check(@RequestBody JSONObject json) {
    CommitSure commitSure=JSON.toJavaObject(json, CommitSure.class)
    //这样可以得到将前端的数据存入CommitSure实体类。
     return null;
    }
2.那就说明@springBody在将json封装成实体类出现错误;
    出错误原因:
    获取"RequestId": "xxx555",@springBody获取要接受的实体类属性RequestId并统一转为驼峰式requestId,
    然后去json中获取key为requestId的值,此时为null;调用实体类中setRequest()方法为实体类赋值。
    
3.解决思路:
    方式一:1.json传递数据的key统一改为驼峰式
        {
        "requerstID": "xxx555",
        "version": "1.0.0v"    
        }
    方式二:2.告诉解析器要去查找的json的key的值
        //利用@JsonProperty在实体类属性上指定,对应json的key值
        @Data
        public class CommitSure {
            @JsonProperty(“RequestId”)
                private String RequestId;
                @JsonProperty(“Version”)
            private String Version;
        }
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值