Я пытаюсь изучить флаттер, но застрял на JSON сериализации. Я следил за некоторыми руководствами на YouTube и из документации по flutter, но у меня возникли проблемы с сериализацией. Не могли бы вы помочь мне немного, это для образовательных целей, поэтому меня больше интересует теория, лежащая в основе, а не решение само по себе, однако даже с одним решением, я думаю, я могу попытаться понять процесс. Я должен упомянуть, что я знаю это , но в моем случае у меня есть вложенные объекты в данных, и это меня сбивает.
Пример данных ответа, это в основном магазин, который для каждого дня у них есть список дней, когда они открываются, и для каждого объекта (дня) у них есть время и дата открытия.
{
"data": [
{
"openTime": {
"open": "10:00",
"close": "20:00"
},
"date": {
"gregorian": {
"day": "01",
"weekday": {
"en": "Friday",
"de": "Freitag"
},
"month": {
"number": 5,
"en": "May",
"de": "Mai"
},
"year": "2020"
}
}
},
{
"openTime": {
"open": "12:00",
"close": "18:00"
},
"date": {
"gregorian": {
"day": "02",
"weekday": {
"en": "Saturday",
"de": "Samstag"
},
"month": {
"number": 5,
"en": "May",
"de": "Mai"
},
"year": "2020"
}
}
}
]
}
Моя функция, которая извлекает данные:
Future<Mall> fetchData() async {
final response = await http.get(url);
if (response.statusCode == 200) {
return Mall.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to load data!');
}
}
Класс Mall в моем случае имеет openTime
и date
, что, как мне кажется, является моей проблемой.
class Mall {
final dynamic openTime;
final dynamic date;
Mall({this.openTime, this.date});
factory Mall.fromJson(Map<String, dynamic> json) {
return Mall(openTime: json['openTime'], date: json['date']);
}
}
Результат, который я пытаюсь получить, должен выглядеть примерно так это, чтобы я мог перебирать список данных и создавать карту в течение нескольких дней (например, последние 7 дней)
var time = [
{
"openTime": {"open": "10:00", "close": "20:00"},
"date": "01 May 2020"
},
{
"openTime": {"open": "12:00", "close": "18:00"},
"date": "02 May 2020"
},
];
Я получаю следующую ошибку:
type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Заранее спасибо.