日前用swagger测试的时候发现,返回的对象属性名与实际不一致,比如返回的属性名有fDate,前端接到的是fdate,理所当然的获取不到java返回的fDate的值
同事怀疑是小写f引起的,一度要把他们自己的所有代码f开头的都改掉。我将信将疑,没有立即改。今天有空debug了一下,看到java返回的对象属性确实是大写的,猜想可能是注解引起的。排除swagger注解后,锁定在了@Data注解上,于是去掉了lombok.Data注解,手工生成getter、setter,一切正常了。然后百度了下这个注解,果然有特殊情况,当属性名子二个字母大写的时候,需要指定@JsonProperty及其value。或者,你可以手动getfDate和setfDate
@JsonProperty("fDate") private Object fDate;
或
private Object fDate; public Object getfDate() { return fDate; } public void setfDate(Object fDate) { this.fDate = fDate; }