如何使用Gson将对象的JSON字符串转换为ArrayList?

给朱利安

所以我有一个像这样的国家的JSON字符串:

{
"details": [
    {
        "country_id": "1",
        "name": "Afghanistan",
        "regions": null
    },
    {
        "country_id": "2",
        "name": "Albania",
        "regions": null
    },
    {
        "country_id": "3",
        "name": "Algeria",
        "regions": null
    },

    ... and so on
}

现在,我想要一种方法,尝试将其转换ArrayList为国家/地区。

public static ArrayList<GFSCountry> get() {
    return new Gson().fromJson(countriesJson,  new TypeToken<ArrayList<GFSCountry>>(){}.getType());
}

但是我得到了

Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path

根据要求,这是我的GFSCountry课程:

@SerializedName("country_id")
@Expose
private String countryId;
@SerializedName("name")
@Expose
private String name;
@SerializedName("regions")
@Expose
private Object regions;

public String getCountryId() {
    return countryId;
}

public void setCountryId(String countryId) {
    this.countryId = countryId;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Object getRegions() {
    return regions;
}

public void setRegions(Object regions) {
    this.regions = regions;
}

我知道我应该从JSON字符串或方法中进行调整。有什么帮助吗?

前沿精神科医生

由于列表嵌套在JSON中,因此您将需要一个包含列表的小型映射类。

尝试

static class GFSCountryList {
    public List<GFSCountry> details;
}

public static List<GFSCountry> get() {
    return new Gson().fromJson(countriesJson, GFSCountryList.class).details;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章