我具有以下对象结构的JSON响应:
{
"cities": {
"5": {
"id": "5",
"name": "New York"
},
"6": {
"id": "6",
"name": "Los Angeles"
}
},
"total": 2,
"page": 1,
"total_pages": 1
}
如您所见,“城市”显然是一个关联类型数组,其中列出了所有被引用的城市。我正在尝试创建一个Dart对象,该对象可以保存JSON对象中的这些城市值。 城市对象非常简单:
class City {
int id;
String name;
City(this.id, this.name);
City.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
}
}
但是,我不确定如何创建CityResults对象。我通常从json数组创建一个List对象,但不确定如何运行?
答案 0 :(得分:2)
您必须修复City
类,因为json中的'id'是String,因此有两个选择:
1-用字符串替换int
class City {
String id;
或
2-更改fromJson
方法
City.fromJson(Map<String, dynamic> json) {
id = int.parse(json['id']);
name = json['name'];
}
最后,这可能是您的解析方法:
final Map cityResponse = json.decode(data)["cities"];
final List<City> cities = cityResponse.values
.map((jsonValue) => City.fromJson(jsonValue))
.toList();
//now you have the list of your cities inside cities variable.
cities.forEach((city) => print("City: ${city.id} , ${city.name}"));