多平台统一管理软件接口,如何实现多平台统一管理软件接口
477
2022-10-08
@RequestBody时第二个字母大写,映射不到的解决
@RequestBody第二个字母大写,映射不到
记录一下今天遇到的一个问题, 贼难受
controller
/**
* 添加
*
* @param requestNavigationTagVO
* @return
*/
@PostMapping("/add")
public jsonData add(@RequestBody RequestNavigationTagVO requestNavigationTagVO) {
navigationTagService.add(requestNavigationTagVO);
return JsonData.ok();
}
RequestNavigationTagVO
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class RequestNavigationTagVO {
/**
* id
*/
private Long id;
/**
* 所属导航id
*/
@NotNullhttp://(groups = {AddNavigationTag.class, ModifyNavigationTag.class}, message = "所属导航id不能为空")
private Long pId;
/**
* 标签名称
*/
@NotBlank(groups = {AddNavigationTaglzCADysH.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传参首字母大写将永远获取不到
参考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;
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~