【问题标题】:Adding JSON Data to Flutter Table Calendar dynamically将 JSON 数据动态添加到 Flutter Table Calendar
【发布时间】:2021-02-20 09:43:08
【问题描述】:

如前所述,我正在尝试使用颤振 table_calendar: 2.3.0 而且我不确定如何将 json 数据添加到 Map 以显示日期。

我将开始日期用作日期时间,将事件“列表”用作我正在使用的数据。

这是我的 json 数据:

 "Events": [
        {
            "id": 1,
            "event_name": "Cake tasting",
            "event_photo": "https://dispensaries.s3.amazonaws.com/event_photo/Southern_Cali_Kush_3.jpg",
            "vendor_name": {
                "id": 1,
                "vendor": "Tastey Cakes"
            },
            "refund_available": false,
            "website": "www.foodcakes.com",
            "share_count": 0,
            "check_in_count": 0,
            "street_address": "123 Fake Street",
            "city": "Brooklynn",
            "state": "NY",
            "zipcode": "12312",
            "event_tagline": "Taste my cakes",
            "details": "Cake tasting",
            "start_date": "2020-11-03",
            "start_time": "23:33:00",
            "end_time": "23:33:00",
            "attendees": []
        }
    ]

这是我用来将数据添加到保存新日期数据的 _event 变量的地图:

 Map<DateTime, List> _events = {};

void _getEventDates(数据) { 地图 newMap = {};

for (int i = 0; i < data.length; i++) {
  newMap = {
    data.startingTime, [data.name]
  } as Map<String, dynamic>;
  };
}

有人可以帮助将 json 数据转换成日历上需要显示的格式吗?

【问题讨论】:

    标签: flutter calendar


    【解决方案1】:

    这个convertJsonToDateMap 函数将为您执行此操作:

    Map<DateTime, List> convertJsonToDateMap(String jsonSource) {
      var json = jsonDecode(jsonSource);
      var jsonEvents = json['Events'];
      Map<DateTime, List<String>> events = {};
      for(var event in jsonEvents){
        var date = parseDate(event['start_date']);
        events.putIfAbsent(date, () => <String>[]);
        events[date].add(event['event_name']);
      }
      return events;
    }
    
    DateTime parseDate(String date) {
      var parts = date.split('-').map(int.tryParse).toList();
      return DateTime(parts[0], parts[1], parts[2]);
    }
    
    

    Github 要点:https://gist.github.com/ali2236/3cddbbdafbc1632ddd7cfc23a1758af5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2021-11-06
      • 2020-12-31
      • 2020-04-28
      • 2015-01-10
      相关资源
      最近更新 更多