【坑】lombok+SpringMVC自动修改大小写

1.问题

今天对接接口的时候遇到个小坑,pId传到前端变成了pid(字段还是直接用pid比较好),查了半天,发现是由于 Jackson 序列化库在推断字段名时应用的简化规则导致的;

2.原因

当使用 Lombok 生成 getter 和 setter 时,对于 pId 这样的字段,Lombok 会生成 getPId() 和 setPId() 方法。然而,Jackson 默认会将属性名的第一个字符转换为小写,如果它是一个大写字母,并且第二个字符是大写字母,那么会认为它是一个缩写,于是就直接把两个字母都变成小写了。

  • Lombok会根据字段名自动生成getter和setter方法,例如,对于字段pId,Lombok会生成getPId()和setPId();

  • 而SpringMVC生成的是getpId()和setpId()

3.解决办法

我感觉最好不要用第二个字母需要大写的字段;

如果硬要使用pId这种字段,就在字段添加注解或者重写get、set,让他转成 json 的时候变成指定名字

@JsonProperty("pId")

private String pId;
public String getpId() {

return pId;

}

public void setpId(String pId) {

this.pId = pId;

}

相关推荐
独自破碎E3 分钟前
总持续时间可被 60 整除的歌曲
java·开发语言
Python+JAVA+大数据7 分钟前
TCP_IP协议栈深度解析
java·网络·python·网络协议·tcp/ip·计算机网络·三次握手
丶小鱼丶7 分钟前
Java基础之【多线程】
java
东东51638 分钟前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
她说..44 分钟前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
鹿角片ljp1 小时前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
skywalker_111 小时前
网络编程篇
java·网络协议·网络编程
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于Java的九价疫苗预约系统为例,包含答辩的问题和答案
java·开发语言
tb_first1 小时前
SSM速通4
java·jvm·spring·tomcat·maven·mybatis
百炼成神 LV@菜哥1 小时前
Kylin Linux V10 aarch64安装DBeaver
java·linux·服务器·kylin