动态添加 JSON 数据到 Flutter Table 日历
Adding JSON Data to Flutter Table Calendar dynamically
如上所述,我正在尝试使用 flutter 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(数据){
Map newMap = {};
for (int i = 0; i < data.length; i++) {
newMap = {
data.startingTime, [data.name]
} as Map<String, dynamic>;
};
}
有人可以协助将 json 数据转换为在日历上显示所需的格式吗?
此 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
如上所述,我正在尝试使用 flutter 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(数据){
Map
for (int i = 0; i < data.length; i++) {
newMap = {
data.startingTime, [data.name]
} as Map<String, dynamic>;
};
}
有人可以协助将 json 数据转换为在日历上显示所需的格式吗?
此 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