首页 > 解决方案 > 如何使用 http 请求从 json 创建日历

问题描述

这是我的数据模型

class Datum { String id; String title; DateTime date;String lokasi; String kelab; String fakulti; DateTime selesai;
Datum({
this.id,
this.title,
this.date,
this.lokasi,
this.kelab,
this.fakulti,
this.selesai, });







  factory Datum.fromJson(Map<String, dynamic> json) => Datum(
    id: json["ID_mohon"],
    date: DateTime.parse(json["mula"]),
    title: json["nama_aktiviti"],
    lokasi: json["lokasi"],);`

这是我的方法获取

Future<Map<DateTime, List>> getTask() async {
Map<DateTime, List> mapFetch = {};

await Future.delayed(const Duration(seconds: 3), () {});






var res = await http.get("http://192.168.43.105/aktivitiKita/api/lihatAktiviti.php"); if (res.statusCode == 200) {
 Event event = jsonDecode(res.body);
for (int i = 0; i < event.data.length; i++) {
  mapFetch[event.data[i].date] = [event.data[i].title];
}

return mapFetch;
} }

现在我得到了一个列表 os 类型的错误,而不是“事件”类型的子类型。我使用 mysql phpmyadmin 将数据提取到表日历中。

标签: mysqljsonfluttercalendar

解决方案


我认为您想从 json 数据创建地图列表,那么您应该进行以下更改。

List<Map<DateTime, List>> mapFetch = [];

替换以下行:

mapFetch[event.data[i].date] = [event.data[i].title];

有了这个:

 mapFetch.add({event.data[i].date:[event.data[i].title]});

推荐阅读