返回顶部
首页 > 资讯 > 后端开发 > Python >@RequestBody时第二个字母大写,映射不到的解决
  • 149
分享到

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

2024-04-02 19:04:59 149人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

@RequestBody第二个字母大写,映射不到 记录一下今天遇到的一个问题, 贼难受 controller @PostMapping("/add") pub

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

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

controller


 
    @PostMapping("/add")
    public JSONData add(@RequestBody RequestNavigationTagVO requestNavigationTagVO) {
        navigationTagService.add(requestNavigationTagVO);
        return jsonData.ok();
    }

RequestNavigationTagVO


@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class RequestNavigationTagVO {
    
    private Long 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

请求参数首字母转为小写


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

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

--结束END--

本文标题: @RequestBody时第二个字母大写,映射不到的解决

本文链接: https://lsjlt.com/news/131542.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作