在平常写代码的过程中如果返回给前端的VO有一对多的情况下我一般会使用内部类来实现,因为这种VO一般只用一次,创建一个类还不如内部类来的方便,但是在有一次接口调试时我发现一个内部类中的字段怎么都对不上,后来一看是在类中字段名为uHeight,但是返回到前端时成uheight了,大写的H变成了小写的h,难怪对不上。
下面是我当时的写法,导致了字段的问题。
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RackVO {
// 机房名
private String roomName;
// 机柜名
private String rackName;
// 品牌名
private String brandName;
// 总U数
private Integer allCount;
// 已用U数
private Integer useUCount;
// 资产数量
private Integer assetCount;
// 报警数量
private Integer alarmCount;
// 设备信息集合
private List<Devices> devices;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public static class Devices {
// 资产id
private String assetId;
private String id;
// 资产名
private String assetName;
// 资产编号
private String assetNo;
// 父设备id
private String assetPid;
// 品牌id
private String brandId;
// 品牌名
private String brandName;
// 资产图片地址
private String imgPath;
// 型号id
private String modelId;
// 型号名
private String modelName;
// 机柜id
private String rackId;
// rfidNo
private String rfidNo;
// 型号名
private String roomId;
// 设备序列号
private String serialNo;
// 起始U
private String startU;
// 类别id
private String typeId;
// 设备U高
private String uHeight;
// 设备已用U
private Integer deviceUseU;
// 设备投入使用时间
private String useTime;
// 管理部门
private String deptName;
// 管理负责人
private String userName;
}
}
最后我通过使用手动生成get,set方法来解决这个问题,并注掉了内部类上面的@Data注解。