【坑】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;

}

相关推荐
小付爱coding4 小时前
Claude Code安装教程【windows版本】
java·git·python
**蓝桉**4 小时前
数组的执行原理,java程序的执行原理
java·开发语言
YDS8294 小时前
MyBatis-Plus精讲 —— 从快速入门到项目实战
java·后端·spring·mybatis·mybatis-plus
BBB努力学习程序设计5 小时前
Java条件判断:程序的"决策大脑"
java
我是华为OD~HR~栗栗呀5 小时前
华为OD-C面经-23届学院哦
java·c++·python·华为od·华为·面试
小马爱打代码5 小时前
Spring AI:文生图:调用通义万相 AI 大模型
java·人工智能·spring
摇滚侠5 小时前
2025最新 SpringCloud 教程,网关功能、创建网关,笔记51、笔记52
java·笔记·spring cloud
又是忙碌的一天5 小时前
Socket学习
java·学习·socket
香吧香6 小时前
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
java·spring boot·spring cloud
浓墨染彩霞6 小时前
Java-----多线路
java·经验分享·笔记