如何在飞镖中将地图<字符串,列表><ClassObj>更改为地图<字符串,列表<Map>>?



例如;

我想转换

{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}]}

由于在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());
});

最新更新