同一个对象中,接口返回了同一组数据的两套字段(大写和小写),但我的 Java Bean 只定义了一套

作者
2025-09-05阅读 20

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;
}



全部评论

头像
乌兔
前端开发
私信
获得点赞 445
文章被阅读 31,261