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

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

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

controller

 /**     * 添加     *     * @param requestNavigationTagVO     * @return     */    @PostMapping("/add")    public JsonData add(@RequestBody RequestNavigationTagVO requestNavigationTagVO) {        navigationTagService.add(requestNavigationTagVO);        return JsonData.ok();    }

RequestNavigationTagVO

@Builder@AllArgsConstructor@NoArgsConstructor@Datapublic 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传参首字母大写将永远获取不到

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

解决办法:

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

2,自己生成get和set方法

3,使用@JsonProperty注解

 @JsonProperty("pId") private Long pId;

Springboot中@RequestBody大小写转换

使用fastjson

请求参数首字母转为小写

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,

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

相关文章:

你感兴趣的文章:

标签云: