日前用swagger測試的時候發現,返回的對象屬性名與實際不一致,比如返回的屬性名有fDate,前端接到的是fdate,理所當然的獲取不到java返回的fDate的值
同事懷疑是小寫f引起的,一度要把他們自己的所有代碼f開頭的都改掉。我將信將疑,沒有立即改。今天有空debug了一下,看到java返回的對象屬性確實是大寫的,猜想可能是注解引起的。排除swagger注解后,鎖定在了@Data注解上,於是去掉了lombok.Data注解,手工生成getter、setter,一切正常了。然后百度了下這個注解,果然有特殊情況,當屬性名子二個字母大寫的時候,需要指定@JsonProperty及其value。或者,你可以手動getfDate和setfDate
@JsonProperty(value="fDate")//此處參考文章應該系筆誤,value=不能省略, private Object fDate;
或
private Object fDate; public Object getfDate() { return fDate; } public void setfDate(Object fDate) { this.fDate = fDate; }