我正在使用改造2.0和gson将json转换为pojo。
我得到了json对象

{
"type": "champion",
"format": "standAloneComplex",
"version": "9.6.1",
"data": {
    "Aatrox": {...},
    "Ahri": {...},
     ...
} }


我的问题是内部数据中的每个条目都是一个新类(它是同一个类,但名称不同)

我可以单独访问每个班级

public class Champions {

@SerializedName("type")
@Expose
public String type;
@SerializedName("format")
@Expose
public String format;
@SerializedName("version")
@Expose
public String version;
@SerializedName("data")
@Expose
public Data data;


这有效

public class Data {
@SerializedName("Aatrox")
@Expose
public Champion aatrox;
@SerializedName("Ahri")
@Expose
public Champion ahri;}




public class Data {
publc List<Champion> champions = new ArrayList<>();




我如何获取列表中的所有条目?

我试图在List<Champion>中放入Data,但是我不知道在@SerializedName中放入什么。

关于如何从数据中检索List<Champion>的任何建议?

我从中获取json的站点是http://ddragon.leagueoflegends.com/cdn/9.6.1/data/en_US/champion.json

最佳答案

设置您的data变量数据类型Map<String, Champion>而不是将其设置为objectList,并将以下getter方法添加到模型中以检索List<Champion>

public List<Champion> getChampions(){
    if(data != null){
        return new ArrayList<Value>(data.values());
    }
    return null; // you can set return new ArrayList<>(); to avoid null exception
}

08-05 18:38