我是Retrofit的新手。如何使用改造解析下面的Json?
{
"data": {
"Aatrox": {
"id": 266,
"title": "a Espada Darkin",
"name": "Aatrox",
"key": "Aatrox"
},
"Thresh": {
"id": 412,
"title": "o Guardião das Correntes",
"name": "Thresh",
"key": "Thresh"
}
},
"type":"champion",
"version":"6.23.1"
}
答案 0 :(得分:9)
您可以让模型POJO包含一个Map<String, Champion>
来反序列化,以处理动态密钥。
示例:
public class ChampionData {
public Map<String, Champion> data;
public String type;
public String version;
}
public class Champion {
public int id;
public String title;
public String name;
public String key;
}
除此之外,我不熟悉Retrofit,但正如评论中的某些人所说,反序列化是由Gson完成的:
public ChampionData champions = new Gson().fromJson(json, ChampionData.class);
因此,为了建立其他人发布的答案,您可以执行以下操作,假设您已添加GsonConverterFactory
:
public interface API {
@GET("path/to/endpoint")
Call<ChampionData> getChampionData();
}
答案 1 :(得分:1)
假设Retrofit2,您需要做的第一件事是在构建Retrofit
实例时调用以下内容。
addConverterFactory(GsonConverterFactory.create())
然后,只需编写一个映射到json的POJO(例如MyPojoClass),然后在Retrofit界面中添加如下内容。
Call<MyPojoClass> makeRequest(<some params>)
;