解決springboot bean中大寫的字段返回變成小寫的問題
例如我的bean中有以下4個字段
private String code; private String _TOKENUUMS; private String TGC; private String U;
在返回的json裡隻會顯示
{“code”:“xx”,“tgc”:“xx”,“u”:“xx”}
大小會變成小寫,特殊符號開頭的字段都不會顯示,其原因是因為springboot在進行序列化和反序列時對字段進行瞭處理。
解決方案是:
import com.fasterxml.jackson.annotation.JsonProperty;
在get方法上加上該註解@JsonProperty
private String code; private String _TOKENUUMS; private String TGC; private String U; public String getCode() { return code; } public void setCode(String code) { this.code = code; } @JsonProperty("_TOKENUUMS") public String get_TOKENUUMS() { return _TOKENUUMS; } public void set_TOKENUUMS(String _TOKENUUMS) { this._TOKENUUMS = _TOKENUUMS; } @JsonProperty("TGC") public String getTGC() { return TGC; } public void setTGC(String TGC) { this.TGC = TGC; } @JsonProperty("U") public String getU() { return U; } public void setU(String u) { U = u; }
返回json會變成{“code”:“xx”,”_TOKENUUMS”:“xx”,“TGC”:“xx”,“U”:“xx”},完美解決問題!
補充:Spring getBean 首字母大小寫問題
今天學習SPRING 的@Qualifier 註解
遇到如下問題:
spring默認的組掃描的bean id 是類名的首字母小寫,如:class Bee ,那麼 bean id 默認為: bee,可是我的程序卻找不到這種格式的bean id
上網查原因,得到解釋:
原來我的類名 class CDPlayer ,我按照默認的規則理解, bean id 應該為 cDPlayer,可偏偏不是這樣,原來:
1、如果類第一個字母大寫第二個小寫,那麼首字母小寫獲取bean
2、如果第一個和第二個字母都是大寫的,那個獲取bean首字母要大寫
這個原理不明白是為什麼,但是的確是這樣,問題解決瞭。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- SpringBoot項目如何將Bean註入到普通類中
- fastjson轉換對象實體@JsonProperty不生效問題及解決
- Spring Bean自動裝配入門到精通
- 詳解Java-Jackson使用
- Java開發中POJO和JSON互轉時如何忽略隱藏字段的問題