使用gson解析包含两个(或更多)对象中具有相同名称的字段的json

时间:2017-06-09 18:33:38

标签: java json gson

我有一个我要解析它的json文件。 这是我的json:

{
    "weather": [
        {
            "id": 802,
            "main": "Clouds",
            "description":"Rainy",
            "icon": "03d"
        }
    ],
    "visibility": 10000,
    "dt": 1497028800,
    "id": 2643743,
    "name": "London",
    "cod": 200
}

我想将这个json解析为java代码,所以我的代码看起来像这样:

public class CurrentWeather {

    public class Weather{
        @SerializedName("id")
        private String id;
        @SerializedName("main")
        private String title;
        @SerializedName("description")
        private String description;
    }

    @SerializedName("id")
    private String id;
    @SerializedName("name")
    private String city;
}

你可以看到json中有两个“id”;一个在json体中,另一个在天气对象中,我在我的java代码中使用@SerializedName("id")两个字段。我确定这不是正确的方法。 所以我的问题是我应该怎么做才能解析这段代码?

1 个答案:

答案 0 :(得分:2)

public class CurrentWeather {

    private List<Weather> weather;
    @SerializedName("id")
    private String id;
    @SerializedName("name")
    private String city;
}

 public class Weather{
        @SerializedName("id")
        private String id;
        @SerializedName("main")
        private String title;
        @SerializedName("description")
        private String description;
    }