2
我有一個webservice,它爲每個請求返回相同的通用容器以及一些基本信息。例如,請求用戶的列表將會給我下面的響應:使用GSON反序列化具有特定對象的通用容器
{
"error":false,
"message":"Message goes here",
"items":[
{
"id":1,
"name":"Test User 1"
},
{
"id":2,
"name":"Test User 2"
}
]
}
當請求不同的資源,只有項目的列表將有所不同:
{
"error":false,
"message":"Message goes here",
"items":[
{
"id":3,
"artist":"Artist 1",
"year":2001
},
{
"id":4,
"artist":"Artist 2",
"year":1980
}
]
}
在我的客戶我要地圖使用GSON對Java對象的響應:
public class ArtistRestResponse {
private boolean error;
private String message = "";
private Artist[] items;
}
然而,重構公共字段,並讓我從每個資源創建類,它會創建一個合乎邏輯的步驟一個一般類型RestResponse<T>
類:
public class RestResponse<T> {
private boolean error;
private String message = "";
private T[] items;
}
的問題是,這是不可能使用RestResponse<Artist> = new Gson().fromJson(json, RestResponse<Artist>.class);
。 有什麼方法可以使用這樣的構造,還是有更好的方法來處理服務器響應?