用了swagger以后,可能出现这种情况。按自己类定义的属性去调接口,出现了属性值丢失的问题。其实值并没有丢失,只是你在定义model的时候没有按照jackson的驼峰命名规范来,它会做个默认的强制驼峰处理
命名规范
private String f;//纯小写不能生成
private String id;
private String aaaCdDe;//小驼峰命名
private String bbbBbbCdDe;//小驼峰命名
private String userName;//小驼峰命名
private String qDate;//小驼峰命名
private String ADate;//大驼峰命名-常用与类名
private String AaaBbbCcc;//大驼峰命名-常用与类名
private String ABCD;//纯大写命名(不符合驼峰)
/**在swagger接口属性中,该属性变成了ab*/
private String AB;//(不符合驼峰)
jackson的默认行为,swagger在生成接口规范时,会强制按照内部限定的驼峰命名规范来转换后台定义的model属性名显示。
- 比如属性中定义了String AB; 在接口传值得时候用AB属性值就丢失了,用ab接收就没问题。
默认情况下类的成员变量以小写字母开头, 当需要以大写开头时,系统在编译时或者swagger在传递参数时都会自动将大写变为小写,带来一些不便
解决方法就是:
1、在声明变量时加上注解: @JsonProperty
2、在set/get方法加上注解:@JsonIgnore