1、问题描述
用的若依框架,一次很正常的请求返回,因为是根据某个接口文档写的返回值,是大小写都有的,类似这样
@Data
public class Ex04Resp {
public String XUHAO;
public String TYPE;
public String message;
}
但是我实际返回的时候,其中的大写字段,在返回值中有两份,类似这种
{
"XUHAO": "11",
"TYPE": "E",
"xuhao": "11",
"type": "E",
"message": "成功"
}
实际debug来看,方法的返回值是没有问题的
2、问题的原因
既然方法的返回值没有问题,问题其实就出现在@ResponseBody的json转换上了
由于messagge字段是小写,只有一条。整体的逻辑大致就是:大小写区分,默认是小写,于是将大小均做了一遍转换,导致了出现了重复
3、修改方式
使用@JsonProperty将属性固定,也就是强制指定属性名称,避免了json的自动转换
最终如下
@Data
public class Ex04Resp {
@JsonProperty("XUHAO")
public String XUHAO;
@JsonProperty("TYPE")
public String TYPE;
@JsonProperty("message")
public String message;
}