#flutter #dart
#flutter #dart
Вопрос:
Например;
Я хочу преобразовать
{Aug 07, 2020: [Instance of 'ActivityLog', Instance of 'ActivityLog'], Aug 04, 2020: [Instance of 'ActivityLog'], Jul 29, 2020: [Instance of 'ActivityLog'], Jul 28, 2020: [Instance of 'ActivityLog']}
Для
{Aug 07, 2020: [{MapData}, {MapData}], Aug 04, 2020: [{MapData}], Jul 29, 2020: [{MapData}], Jul 28, 2020: [{MapData}]}
Комментарии:
1. Создайте в своем
ActivityLog
классе метод, который преобразует класс вMap
представление. Часто вызывается этот методtoJson()
, поскольку это часто то, что мы хотим при создании строки JSON из некоторых объектов.2. Пожалуйста, объясните, как вы хотите преобразовать. В противном случае любой ответ здесь — это просто предположение.
Ответ №1:
Поскольку во Flutter отражение пока невозможно, вам нужен метод в вашем ActivityLog для создания карты из класса.
Таким образом, это может быть что-то вроде этого:
Map<String, dynamic> toMap() {
return {
'field1': field1,
'field2': field2
};
}
Как только у вас это будет, вы можете использовать .map()
функцию, например:
var map1 = {
'Aug 07, 2020': [
ActivityLog('x1', 'x2'),
ActivityLog('y1', 'y2'),
]
};
var map2 = map1.map((key, value) {
return MapEntry(key, value.map((e) => e.toMap()).toList());
});