SpringBoot | 返回Json实体类属性大小写问题
今天遇到一个很有意思的问题,写个微博记录一下。前端朋友要我传一个大写属性(类似于PEOPLEName)的json实体给他,可是就算把变量名写成这样,他收到的还是(peoplename),而且这样写不符合小驼峰命名规范,被领导看见会被打手板的啊。怎样想一个两全其美的方法既能给他想要的,又能让我免于酷刑。就在我手足无措,冥思苦想之际,组长过来帮我解决了这个问题,下面我们来看一下这个问题的解决方式。
原因其实很简单,是因为Jackson处理json数据时,会自动把首字母变小写。一个注释就可以解决这个问题,下面是代码示例。
public class JsonVO {
private String PEOPLEName;
public JsonVO(String name) {
this.PEOPLEName = name;
}
public String getPEOPLEName() {
return PEOPLEName;
}
}
String PEOPLEName = "Mws";
@Override
public JsonVO getPeopleName() {
return new JsonVO(PEOPLEName);
}
{
"peoplename": "Mws"
}
可以看到就算变量名写成大写返回的结果依然是小写状态,接下来加上这个注解@JsonProperty(注:加在属性上或getter上皆可)
@JsonProperty("PEOPLEName")
private String peopleName;
或者
@JsonProperty("PEOPLEName")
public String getpeopleName() {
return peopleName;
}
测试一下
{
"PEOPLEName": "Mws"
}
完美解决~