Android Gson 泛型解析

2021-09-17 23:32:31 字數 952 閱讀 3065

解析 bean 類:

public class responseobj

public void setcode(string code)

public string gettoastmessage()

public void settoastmessage(string toastmessage)

public t getdata()

public void setdata(t data)

}

t data  這是乙個泛型物件,如果我們不傳遞泛型類,而是乙個包含泛型的類,最後解析出來的還是linkedtreemap而不是你想要的bean類。

我們先看看平時如何使用gson來解析json,就假設有個test類吧。

test  test  = gson.fromjson(json, test.class);
這個方法的第二個引數是傳乙個type,我們可以來看看什麼是type

都知道能理解成是乙個型別的介面。

如何獲取這個type呢,我在自己的程式中是通過反射獲取到這個type。

protected type clazz;

public abstractquerycallbackerrorcode()

protected parameterizedtype type(final class raw, final type... args) 

public type getactualtypearguments()

public type getownertype() };}

最終呼叫解析類,進行資料解析。

private abshttpresposebasecodebean fromjson(string json, type clazz)
其實就是要注意傳遞泛型型別的問題。

Android Gson解析 示例

我這次講解乙個不太複雜的示例。我使用的是android studio,需要在gradle裡新增 compile com.google.code.gson gson 2.6.2 讓其自動配置。首先拿到乙個json資料,如下 string json 之後根據json資料新建一系列的bean。首先分析資料...

泛型的解析

泛型 object obj new integer 30 相當於父引用指向子物件就是多型 public class objecttool public void setobj object obj public class objectstooldemo 向上轉型沒有問題,但是向下轉型的時候其實隱含...

java基礎 泛型解析

泛型,編寫的 可以被很多不同型別的物件重用。簡單泛型類的定義 public class generic public generic t info public void setinfo t info public t getinfo private t info 用具體的型別替換型別變數 t 就可...