我有下一个Json:
{
"Regions": [
{
"Id": "NA",
"Label": "North America"
},
{
"Id": "EUR",
"Label": "Europe"
},
{
"Id": "ASIA",
"Label": "Asia"
},
{
"Id": "AUS",
"Label": "Australia"
}
],
"Stations": {
"EUR": [
"Kiyv",
"Astana"
],
"NA": [
"Kosovo"
]
}
}
如您所见,Stations
部分中的关键名称与Regions
部分中每个项目的值相同。
我的POJO课程
public class Provisions {
@SerializedName("Regions")
public List<Region> regions;
@SerializedName("Stations")
public List<Station> stations;
}
public class Region {
@SerializedName("Id")
public String id;
@SerializedName("Label")
public String label;
}
public class Station {
// what should be put here?
}
我的问题是:如何以更优雅的方式宣布POJO,让我的生活更轻松:例如:如果后端添加新的Region和Station,我不会想要修改POJO - 所有都会自动解析。
也许它会通过泛型完成?
答案 0 :(得分:0)
重新定义您的Provisions类,如下所示:
public class Provisions {
@SerializedName("Regions")
private List<Region> regions;
@SerializedName("Stations")
private Map<String, List<String>> stations;
}
然后,您可以使用类似于:
的代码反序列化Gson gson = new GsonBuilder().create();
Provisions provisions = gson.fromJson(JSON_VALUE, Provisions.class);