Flutter 如何在分组列表视图中显示来自API的数据
我的数据来自api,如下所示:Flutter 如何在分组列表视图中显示来自API的数据,flutter,dart,grouped-list,Flutter,Dart,Grouped List,我的数据来自api,如下所示: { "status": true, "error": "", "message": "Record Found.", "data": { "2021-Apr-19": [ {
{
"status": true,
"error": "",
"message": "Record Found.",
"data": {
"2021-Apr-19": [
{
"img_url": "https://www.rezzap.com/uploads/profile-photo/BWPOFCyHMFm_OgzvCxRwS5dBJTS6wCgy.jpg",
"person": "CooperMac",
"message": " supported your activity drawing."
}
],
"2021-Mar-30": [
{
"img_url": "https://www.rezzap.com/uploads/profile-photo/BWPOFCyHMFm_OgzvCxRwS5dBJTS6wCgy.jpg",
"person": "CooperMac",
"message": " commented on your activity Test Activity 12-11-2020."
},
{
"img_url": "https://www.rezzap.com/uploads/profile-photo/BWPOFCyHMFm_OgzvCxRwS5dBJTS6wCgy.jpg",
"person": "CooperMac",
"message": " supported your activity ."
},
],
}
}
同样,我制作了这样的模型-:
class Support {
Support({
this.data,
});
Map<String, List<Datum>> data;
factory Support.fromJson(Map<String, dynamic> json) => Support(
data: Map.from(json["data"]).map((k, v) =>
MapEntry<String, List<Datum>>(
k, List<Datum>.from(v.map((x) => Datum.fromJson(x))))),
);
}
class Datum {
Datum({
this.imgUrl,
this.person,
this.message,
});
String imgUrl;
String person;
String message;
factory Datum.fromJson(Map<String, dynamic> json) => Datum(
imgUrl: json["img_url"],
person: json["person"],
message: json["message"],
);
}
类支持{
支持({
这个数据,,
});
地图数据;
工厂支持。fromJson(映射json)=>支持(
数据:Map.from(json[“data”]).Map((k,v)=>
地图条目(
k、 List.from(v.map((x)=>Datum.fromJson(x ')),
);
}
类基准{
基准面({
这个,imgUrl,
这个人,,
这条信息,
});
字符串imgUrl;
线人;
字符串消息;
工厂数据.fromJson(映射json)=>数据(
imgUrl:json[“img_url”],
person:json[“person”],
message:json[“message”],
);
}
下面是响应,但我不知道如何在模型中解析它,我需要更正,以便有人能提供帮助
Future<Support> getSupportActivityData() async {
final response = await _helper.get(supportedActivityUrl);
var responseData = response["data"];
var list = responseData as Map<String, dynamic>;
return Support.fromJson(list);
}
未来getSupportActivityData()异步{
最终响应=等待_helper.get(supportedActivityUrl);
var responseData=响应[“数据”];
var列表=作为映射的响应数据;
返回Support.fromJson(列表);
}
我尝试将返回类型设置为“Future”和其他类型,但它总是显示类型转换错误
我想获取该数据并将其显示为,那么当它要求将键作为标题并将值作为行时,如何在这个分组列表中显示该数据呢?请尝试使用此代码转换您首先要列出的地图 这可以通过后端响应实现,也可以通过
var h=此处为映射数据。forEach((k,v)=>此处为列表变量。添加(此处为映射数据(k,v)) 我将我的函数替换为响应出现的地方-:
Future<Support> getSupportActivityData() async {
final response = await _helper.get(supportedActivityUrl);
return Support.fromJson(response);
}
未来getSupportActivityData()异步{
最终响应=等待_helper.get(supportedActivityUrl);
返回Support.fromJson(响应);
}
我已经在模型中解析了[“数据”],我正在做的是在我的repo中解析数据(响应来自何处)我对dart编程是新手,我必须在响应来自何处(getSupportActivityData)或模型类中编写代码?你能说得准确点吗。