Могу я спросить, есть ли у моего тела json несколько таких детей.

 { "head": {    "title": "Podcasts",
    "status": "200"}, "body": [
 { "element" : "outline", 
"text" : "Music", 
"children": [
 { "element" : "outline", 
"type" : "link", 
"text" : "Schlager", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c100000594&filter=p:topic", 
"guide_id" : "c100000594" },
 { "element" : "outline", 
"type" : "link", 
"text" : "Rádios da Metropolitana FM", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c100002153&filter=p:topic", 
"guide_id" : "c100002153" },
 { "element" : "outline", 
"type" : "link", 
"text" : "Hits Popular", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c100000599&filter=p:topic", 
"guide_id" : "c100000599" },
 { "element" : "outline", 
"type" : "link", 
"text" : "Top 40 & Pop Music", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c57943&filter=p:topic", 
"guide_id" : "c57943" },
] },
 { "element" : "outline", 
"text" : "Talk", 
"children": [
 { "element" : "outline", 
"type" : "link", 
"text" : "International Public Radio", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c100001487&filter=p:topic", 
"guide_id" : "c100001487" },
 { "element" : "outline", 
"type" : "link", 
"text" : "History Podcasts", 
"URL" : "http://opml.radiotime.com/Browse.ashx?id=c100000897&filter=p:topic", 
"guide_id" : "c100000897" },
 { "element" : "outline", 
] }
] }

И мой код может получить только первого ребенка.

List<Prodcasts> parseProdcasts(String responseBody) {
  var parsed = jsonDecode(responseBody)['body'][0]['children'] as List;
  return parsed.map<Prodcasts>((json) => Prodcasts.fromJson(json)).toList();
}

Потому что я набрал ['body'][0]['children'], и если я хочу получить второго ребенка, я должен ввести ['body'][1]['children']

Хорошо, но что, если я хочу получить всех детей? Заранее спасибо

0
Saly Glowner 16 Окт 2020 в 01:34

1 ответ

Лучший ответ

Чтобы получить детей, вам понадобится функция карты.

jsonDecode(responseBody)['body'].map((item)=> item['children']).toList().expand((x) => x).toList()
1
Miftaudeen 15 Окт 2020 в 22:54