Java实体类属性和数据库字段都是大写字母,为什么返回给前端会变成小写字母

  • 1. 问题描述
  • 2. 原因
  • 3. 解决方法

1. 问题描述

最近我在开发系统的过程中发现了一个问题,我数据库中数据表的字段名使用的全是大写字母,Java实体类中属性也都是大写字母,但是返回给前端的时候所有属性名却变成了小写的。
我查阅资料后解决了问题,因此记录下来,避免以后再次踩坑。

  • 数据库字段的字段名是大写字母,如下
IDNAME
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}