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

网友投稿 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小时内删除侵权内容。

上一篇:远程操作系统与服务检测技术(远程验收系统)
下一篇:CIsco路由器实现IPSec 虚拟专用网原理及配置详解(cisco配置路由器的步骤)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~