目前使用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框架单元测试成功解析成实体类,由于属性的特殊性单个字母开头小写驼峰,怀疑是这个导致。
问题原因找到解决方案有两种:
- 将springboot的默认json解析工具由jackson改为fastjson;
- 将变量首字母改为多字母
参考:(6条消息) jackson 单字母的驼峰命名可能遇到的问题_艾斯比的日常的博客-CSDN博客_jackson驼峰命名