Lombok导致后端传给前端的字段名大写变小写

问题再现:1.使用了Lombok的@Data 2.字段驼峰命名不规范

实体类:

在这里插入图片描述

后端断点调试:可以看到字段命名是没问题的

在这里插入图片描述

前端页面显示:发现驼峰命名的personId能正确显示,而pName显示不出来

在这里插入图片描述

查看浏览器:pName变成了pname

在这里插入图片描述

原因:Lombok的@Data生成的get、set方法会把JavaBean的首字母变成大写

@Data
public class Person{
	private String pName;
	//lombok帮你生成的
 	public String getPName() {
        return pName;
    }
    //lombok帮你生成的
    public void setPName(String pName) {
        this.pName = pName;
    }
    //最后通过lombok得到pname,导致前端代码对应不上,显示不出来
}

解决方法

1.去掉@Data,手动生成get、set方法,生成的get、set方法是这样的,这是idea生成get、set方法的方式

public Long getPersonId() {
    return personId;
}

public void setPersonId(Long personId) {
    this.personId = personId;
}

public String getpName() {
    return pName;
}

public void setpName(String pName) {
    this.pName = pName;
}

2.给字段添加@JsonProperty(“字段名”),指定命名。spring默认使用的是jackson处理json的序列化和反序列化,@JsonProperty是Jackson的注解,作用在属性上,将属性名称序列化为另一个名称

@JsonProperty("pName")
private String pName;

总结:使用规范驼峰命名,能避免很多问题,一个bug找很久

参考博客: 参考1参考2

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值