Как мне извлечь список объектов из json?
Я получаю json, в котором есть список объектов - я обрабатываю их без проблем, я создаю список объекты, такие как комментарий комментарий и один подкоммент):
{
"item_comments":[
{
"resource_name":"item_comment",
"id":805694,
[...]
"created_by":{
"resource_name":"user",
[...]
},
"comments":[
{
"resource_name":"item_comment",
"id":806885,
"parent_id":805694,
[...]
},
"comments":[
]
}
]
}
],
"item_commnets_count":1
}
Я обрабатываю список комментариев следующим образом:
Future <void> _picComments(int picId) {
return getComments(picId).then((response) {
setState(() {
Map<String, dynamic> map = json.decode(response.body);
Iterable list = map['item_comments'];
comments = list.map((model) => Comment.fromJson(model)).toList();
});
});
}
Моя модель выглядит следующим образом:
class Comment {
int id, parentId, [...];
String content, [...];
bool isVoted, isAnswer;
Comment(
this.id,
this.parentId,
this.content,
[...]
);
Comment.fromJson(Map json)
: id = json['id'],
parentId = json['parent_id'],
content = json['content'],
[...];
}
Но я не знаю, как извлечь список подкомментариев
Но если я добавлю к нему:
List<Comment> subComments;
subComments = json['comments'],
Тогда я ошибаюсь.
РЕДАКТИРОВАТЬ: У меня есть ответ чтобы спросить. Вместо
comment = json['comments']
я пишу:
comments = List()..addAll(
(json['comments'] as List ?? []).map((o) => Comment.fromJson(o)))
ЭТО РАБОТАЕТ! :)