目前使用springboot版本2.4.1,发现报文传参后台却无法接收到,代码如下:
 

@PostMapping (consumes = MediaType.APPLICATION_JSON_VALUE)
public Result <Integer> insert (@Validated @RequestBody ConfigInsertDto configInsertDto){
    ……
}
{
  "cName": "登录会话",
  "cKey": "session",
  "cValue": "JSESSIONID=578228A3F7018610B36B86EA9C031CFC",
  "vSts": "Y",
  "cDesc": "登录会话",
}

        后端提示参数不能为空。发现RequestBody 注解已经写了,参数dto的属性名称也是对应的。突然感觉是参数封装出了问题。用alibaba的fastjson框架单元测试成功解析成实体类,由于属性的特殊性单个字母开头小写驼峰,怀疑是这个导致。

问题原因找到解决方案有两种:

  1. 将springboot的默认json解析工具由jackson改为fastjson;
  2. 将变量首字母改为多字母

参考:(6条消息) jackson 单字母的驼峰命名可能遇到的问题_艾斯比的日常的博客-CSDN博客_jackson驼峰命名

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐