#json #flutter
#json #flutter
Вопрос:
Мне нужно объединить вложенный 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);
но я получаю сообщение об ошибке, так как ‘length’ был вызван для null. итак, дайте мне знать, чего мне не хватает, поскольку я перехожу к dart, api выдает числовой ключ в качестве ключа, поэтому я сталкиваюсь с трудностями при получении данных
Комментарии:
1. Ваше «значение» — это объект списка, поэтому вы должны использовать «data.addAll (value)». Именно так вы получите желаемый результат
Ответ №1:
Может быть, вы можете попробовать это
List<HomeBannerModel> data = [];
responseList.forEach((key, value) {
value.forEach((element) {
data.add(HomeBannerModel.fromJson(element));
});
});