【发布时间】:2021-01-20 14:14:03
【问题描述】:
我正在获取这样的数据
Future<List> dosomestuff() async {
http.Response res = await http.get(
'http://retailapi.airtechsolutions.pk/api/menu/2112',
);
Map<String, dynamic> map = json.decode(res.body);
print(map);
}
它的显示数据是这样的
{
"Categories": [{
"ID": 1064,
"Name": "Pizza",
"Subcategories": [{
"ID": 87,
"CategoryID": 1064,
"CategoryName": "Pizza",
"Items": [{
"ID": 1195,
"Name": "Fajita Pizza (S)"
},
{
"ID": 1196,
"Name": "Fajita Pizza (M)"
},
{
"ID": 1197,
"Name": "Fajita Pizza (L)"
}
]
},
{
"ID": 87,
"CategoryID": 1064,
"CategoryName": "Pizza",
"Items": [{
"ID": 1195,
"Name": "Fajita Pizza (S)"
},
{
"ID": 1196,
"Name": "Fajita Pizza (M)"
},
{
"ID": 1197,
"Name": "Fajita Pizza (L)"
}
]
}
]
},
{
"ID": 1064,
"Name": "Pizza",
"Subcategories": [{
"ID": 87,
"CategoryID": 1064,
"CategoryName": "Pizza",
"Items": [{
"ID": 1195,
"Name": "Fajita Pizza (S)"
},
{
"ID": 1196,
"Name": "Fajita Pizza (M)"
},
{
"ID": 1197,
"Name": "Fajita Pizza (L)"
}
]
}]
},
{
"ID": 1084,
"Name": "beverages",
"Description": null,
"Image": null,
"StatusID": 1,
"LocationID": 2112,
"Subcategories": []
}
],
"description": "Success",
"status": 1
}
我需要知道的是显示所有数组的项目。意味着在上面的数据中有 2 个子类别的数组,在 1 个数组中有 3 个项目。我需要合并数组 1 和 2 的所有项目,这样总共可以有 6 个。
Expecting output
{ "Items": [
{
"ID": 1195,
"SubCategoryID": 87,
"Name": "Fajita Pizza (S)",
},
{
"ID": 1196,
"SubCategoryID": 87,
"Name": "Fajita Pizza (M)",
},
{
"ID": 1197,
"SubCategoryID": 87,
"Name": "Fajita Pizza (L)",
},
{
"ID": 1195,
"SubCategoryID": 87,
"Name": "Fajita Pizza (S)",
},
{
"ID": 1196,
"SubCategoryID": 87,
"Name": "Fajita Pizza (M)",
},
{
"ID": 1197,
"SubCategoryID": 87,
"Name": "Fajita Pizza (L)",
}
]
}
【问题讨论】:
-
您可以从实体中提取子类别并将其相互组合。
-
你能用精确的数据和参数分享预期的输出吗?(文字很好,但精确的输出会更精确)
-
@mozilla_firefox 添加了预期输出
-
试试这个答案stackoverflow.com/a/45200659/11050506。你需要从 for 循环而不是合并获取数据。