在地图中添加地图<动态,动态>飞镖/颤动



我坐了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"}]}}

这是您想要的输出吗?

最新更新