我需要在dart-flutter中将嵌套的json合并为简单的json



我需要将嵌套的json合并为简单的json这里是API 的响应

{
"1": [
{
"id": 6,
"name": "test 1"
},
{
"id": 8,
"name": "test 2"
},
{
"id": 7,
"name": "test 3"
}
],
"2": [
{
"id": 9,
"name": "ttt1"
},
{
"id": 5,
"name": "ttt3"
}
],
"3": [
{
"id": 4,
"name": "ttg"

}
]
}

我需要

[
{
"id": 4,
"name": null
},
{
"id": 6,
"name": null
},
{
"id": 8,
"name": null
},
{
"id": 9,
"name": null
},
{
"id": 5,
"name": null
},
{
"id": 7,
"name": null
}
]

这是我的型号

class HomeBannerModel {
int id;
String name;
HomeBannerModel({this.id, this.name});
HomeBannerModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
image = json['name'];

}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;

return data;
}
}

这是我的循环部分

var responseList = response.data['data'];
if (response.data['success'] == true) {
List data = [];
responseList.forEach((k, v) {    
var value =
v.map((banner) => HomeBannerModel.fromJson(banner)).toList();    
data.add(value);
});
print(data);

但是我得到了一个错误,因为在null上调用了'length'。所以让我知道我遗漏了什么,因为我知道dart,api给出的是数字作为键,所以我在获取数据时遇到了困难

也许你可以试试这个

List<HomeBannerModel> data = [];
responseList.forEach((key, value) {
value.forEach((element) {
data.add(HomeBannerModel.fromJson(element));
});
});

最新更新