• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

@RequestBody时第二个字母大写,映射不到的解决

java 搞代码 4年前 (2022-01-05) 68次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了@RequestBody时第二个字母大写,映射不到的解决方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@RequestBody第二个字母大写,映射不到

记录一下今天遇到的一个问题, 贼难受

controller

 /** * 添加 * * @param requestNavigationTagVO * @return */ @PostMapping("/add") public JsonData add(@RequestBody RequestNavigationTagVO reques<p style="color:transparent">来源gao!%daima.com搞$代*!码$网</p>tNavigationTagVO) { navigationTagService.add(requestNavigationTagVO); return JsonData.ok(); }

RequestNavigationTagVO

 @Builder @AllArgsConstructor @NoArgsConstructor @Data public class RequestNavigationTagVO { /** * id */ private Long id; /** * 所属导航id */ @NotNull(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "所属导航id不能为空") private Long pId; /** * 标签名称 */ @NotBlank(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "标签名称不能为空") private String name; /** * 排序 */ @NotNull(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "排序不能为空") private Integer sort; } 

postman调接口

 { "pId": 654577072911111, "name":"中餐", "sort":1 }

这是日志拿到的数据

可以看到拿不到pId数据(p_id的驼峰写法),

原因:这里使用的@Data注解(省去了get和set方法)

 public Long getPId() { ... } public void setPId(Long PId) { ... } 

而javaBean的规范导致json传参首字母大写将永远获取不到

解决办法:

1,不去使用首字目大写或第二个字母大写的参数

2,自己生成get和set方法

3,使用@JsonProperty注解

 @JsonProperty("pId") private Long pId; 

Springboot中@RequestBody大小写转换

使用fastjson

请求参数首字母转为小写

 @Data public class RequestModel { @JsonProperty("BODY") @JSONField(name = "BODY") private RequestBodyModel Body; }

以上就是@RequestBody时第二个字母大写,映射不到的解决的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:@RequestBody时第二个字母大写,映射不到的解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址