Java实体类属性和数据库字段都是大写字母,为什么返回给前端会变成小写字母
- 1. 问题描述
- 2. 原因
- 3. 解决方法
1. 问题描述
最近我在开发系统的过程中发现了一个问题,我数据库中数据表的字段名使用的全是大写字母,Java实体类中属性也都是大写字母,但是返回给前端的时候所有属性名却变成了小写的。
我查阅资料后解决了问题,因此记录下来,避免以后再次踩坑。
- 数据库字段的字段名是大写字母,如下
ID | NAME |
---|---|
1 | 小红 |
2 | 小明 |
- Java实体类属性也是大写字母,如下
public class Person {private Integer ID;private String NAME;// Getter and Setter}
- 前端接收到的却是小写字母,如下
{"data": [{"id": 1,"name": "小红"},{"id": 2,"name": "小明"}]}
2. 原因
查阅资料后发现,这是因为 Java 中的命名约定是使用驼峰命名法,即属性名的第一个单词小写,后面的单词首字母大写。
但是在返回给前端时,通常会使用 JSON 格式,而 JSON 中的属性名是区分大小写的,因此会将属性名转换为小写字母。
如果想在返回给前端时保留属性名的大小写,可以使用 Jackson 库中的 @JsonProperty 注解来指定属性名。
3. 解决方法
将实体类进行以下修改即可
import com.fasterxml.jackson.annotation.JsonProperty;public class Person {@JsonProperty("ID")private Integer ID;@JsonProperty("NAME")private String NAME;// Getter and Setter}