1.解决办法:
1,不去使用首字目大写或第二个字母大写的参数
2,自己生成get和set方法
image.png
3,使用@JsonProperty注解
@JsonProperty("pId") private Long pId;
2.问题的产生
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
*/
@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传参首字母大写将永远获取不到。。。
转自:
https://blog.csdn.net/jiahao791869610/article/details/93744864
网友评论