Gson通過反射將Json轉化為java物件
阿新 • • 發佈:2019-04-20
Gson是Google提供的用來在Java物件和JSON資料之間進行對映的Java類庫。可以將一個Json字元轉成一個Java物件,或者將一個Java轉化為Json字串。
然後我們先寫一個demo來用Gson將一個json轉化為json物件:
輸出:
這裡定義的Person類
、
然後我們看看是怎麼Gson通過反射轉化為java物件的,主要是看Gson類的fromJson(Reader json, Type typeOfT)方法,將原來傳進去的String型別的json封裝到JsonReader裡面,這個就是讀取資料的處理,就不好好看了,具體操作是在fromJson裡面。
然後我們看看對傳進去的typeOfT做了什麼處理,主要看一下getAdapter裡面進行了怎麼樣的轉化。
以下是com.google.gson.internal.ConstructorConstructor獲取物件的構造方法。
其實更關心反射取到的欄位,以下是獲取類的變數欄位,主要還是通過反射的Field[] fields = raw.getDeclaredFields()。
其實簡單一點,我們可以寫個類似的解析的方式: