我遇到的問題是這樣的 同一個(gè)接口 根據(jù)不同的 type 返回的數(shù)據(jù)格式不同 當(dāng)時(shí)想著用 object 去接 但是事與愿違 轉(zhuǎn)換 josn gson默認(rèn)將int型轉(zhuǎn)換成double 下面說一下我的解決方法
{//type=1 時(shí) 公司數(shù)據(jù)只展示部分
"Favorite_Date": "今天",
"FavoriteList": [
{
"Footmark_ID": 20227,
"Comment_IsLike": 0
}
]
}
{//type=2 時(shí)
"Favorite_Date": "今天",
"FavoriteList": [
{
"Lab_Type": 1,
"Lab_AddDate": "2021-03-20 16:10",
"Lab_Like": 1,
"Lab_IsLike": 0
}
]
}
FootmarkBean {
private String Favorite_Date;
//private List<Object> FavoriteList;} 剛開始時(shí)這樣寫的
//這是解決后的 定義一個(gè) map 如果你的 model 里還有model 可以這樣寫 Map<String, Object> 沒測試過 不過應(yīng)該可以
private List<Map<String, String>> FavoriteList;
public String getFavorite_Date() {
return Favorite_Date;
}
public void setFavorite_Date(String Favorite_Date) {
this.Favorite_Date = Favorite_Date;
}
public List<Map<String, String>> getFavoriteList() {
return FavoriteList;
}
public void setFavoriteList(List<Map<String, String>> FavoriteList) {
this.FavoriteList = FavoriteList;
}
public <T> List<T> getFavoriteList(Class<T> type) {
List<T> list = new ArrayList<>();
EventTransform<List<Map<String, String>>, List<T>> consumers = new EventTransform<List<Map<String, String>>, List<T>>() {
@Override
public List<T> transform(List<Map<String, String>> maps) {
List<T> beanList = new ArrayList<>();
for (Map<String, String> map : maps) {
//通過Gson 將map 轉(zhuǎn)化為 json
String s = JsonUtil.toJson(map);
//定義泛型 通過 泛型轉(zhuǎn)化為我們想要的數(shù)據(jù)格式
T modelBean = JsonUtil.fromJson(s, type);
beanList.add(modelBean);
}
return beanList;
}
};
return consumers.transform(getFavoriteList());
}
}