我坐了6 个小时试图添加Map<dynamic, dynamic>
包含另一个Map<dynamic, dynamic>
中的Map<dynamic, dynamic>
如何像这样添加地图:
{
map1:{
map1_key1: map1_val1
map1_key2: map1_val2
map1_2:{
map1_3:{
map3_key1: map3_val1
map3_key1: map3_val2
}
map2_key1: map2_val1
map2_key1: map2_val2
}
map1_key3: map1_val3
}
}
在称为masterMap
的map中反复进行,并像任何其他映射一样访问其中的每个键/值?
- 我试过这个
- 我试过这个
- 我试过这个
我试过这个
- 尝试了addAll((函数在null上调用错误。
尝试过addEntries((函数给我
The argument type 'Map<dynamic, dynamic>' can't be assigned to the parameter type 'Iterable<MapEntry<dynamic, dynamic>>'
没有任何工作,我需要帮助这是非常糟糕和愚蠢的事情,为什么没有简单的功能将所有地图键/值与另一个合并,这么简单?!
更新:我的代码:
Map<dynamic, dynamic> theSnapShot;
theSnapShot = {
'map1': {
'-LyUAD8B0LpKZ-5-cRn-': {
'CoordsMap': [null, {'FirstCoords': '30.088,31.279',}]
}
}
};
Map<dynamic, dynamic> masterMap;
masterMap.addAll(Map.from(theSnapShot['map1']));
输出:
Unhandled Exception: NoSuchMethodError: The method 'addAll()' was called on null.
很简单,你在这里有两个选择,第一个:定义键然后给它赋值
Map someThing = {
"someThing2":{
'key1': 'val1',
'key2': 'val2',
'key3': {},
}
};
// {someThing2: {key1: val1, key2: val2, key3: {}}}
someThing['someThing2']['key3'] = {
'someThing3': {
'key4': 'val4',
},
};
// {someThing2: {key1: val1, key2: val2, key3: {someThing3: {key4: val4}}}}
第二个选项是添加键和值,如下所示
Map someThing = {
"someThing2":{
'key1': 'val1',
'key2': 'val2',
}
};
someThing['someThing2'].putIfAbsent('key4', () => {
'someThing3': {
'key4': 'val4',
},
});
// {someThing2: {key1: val1, key2: val2, key4: {someThing3: {key4: val4}}}}
由于您尚未启动masterMap
,您的输出Unhandled Exception: NoSuchMethodError: The method 'addAll()' was called on null.
,只需这样做:
Map<dynamic, dynamic> masterMap = {};
我不知道它是否解决了你的问题,因为,你说你不知道钥匙,我认为以下是你要找的:
Map<dynamic, dynamic> theSnapShot;
theSnapShot = {
'map1': {
'-LyUAD8B0LpKZ-5-cRn-': {
'CoordsMap': [null, {'FirstCoords': '30.088,31.279',}]
}
}
};
Map<dynamic, dynamic> masterMap = Map.from(theSnapShot);
theSnapShot.forEach((key, value) {
masterMap.addAll(theSnapShot[key]);
});
print(masterMap);
//output
//{map1: {-LyUAD8B0LpKZ-5-cRn-: {CoordsMap: [null, {FirstCoords: 30.088,31.279}]}}, -LyUAD8B0LpKZ-5-cRn-: {CoordsMap: [null, {FirstCoords: 30.088,31.279}]}}
这是我在dartpad中创建的一个简单的例子。
这是代码的工作版本
Map<dynamic, dynamic> theSnapShot;
theSnapShot = {
'map1': {
'-LyUAD8B0LpKZ-5-cRn-': {
'CoordsMap': [null, {'FirstCoords': '30.088,31.279',}]
}
}
};
Map<dynamic, dynamic> masterMap = theSnapShot;
masterMap.addAll(theSnapShot["map1"]);
print(masterMap);
基本上,它使用theSnapShot
映射初始化masterMap
,并将map1
条目附加到masterMap
。所以masterMap
最后会像
{
"map1": {
"-LyUAD8B0LpKZ-5-cRn-": {"CoordsMap": [null, {"FirstCoords": "30.088,31.279"}]}},
"-LyUAD8B0LpKZ-5-cRn-": {"CoordsMap": [null, {"FirstCoords": "30.088,31.279"}]}}
这是您想要的输出吗?