1. 程式人生 > >Gson通過反射將Json轉化為java物件

Gson通過反射將Json轉化為java物件

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()。

其實簡單一點,我們可以寫個類似的解析的方式: