Flutter json.decode不转换映射<;字符串,Map<;字符串,动态>&燃气轮机;

Flutter json.decode不转换映射<;字符串,Map<;字符串,动态>&燃气轮机;,flutter,dart,dart-sdk,Flutter,Dart,Dart Sdk,我有这样的json称为resultMap { "someInfo":{ "moreInfo":"test", "moreInfo2":"test2" } } 由此,我需要转换Map,但是json.decode(json['resultMap'])在Map内部的Map上不起作用 如何转换它?JSON解析器不会尝试猜测映射元素的类型。所有JSON对象都被解析为Map类型的映射。这允许您向映射添加任何值并将其转换回JSON。事实上,您的映射只包含其他映射作为值,这可能只是一个

我有这样的json称为resultMap

{
  "someInfo":{
    "moreInfo":"test",
    "moreInfo2":"test2"
  }
}
由此,我需要转换
Map
,但是
json.decode(json['resultMap'])
在Map内部的Map上不起作用


如何转换它?

JSON解析器不会尝试猜测映射元素的类型。所有JSON对象都被解析为
Map
类型的映射。这允许您向映射添加任何值并将其转换回JSON。事实上,您的映射只包含其他映射作为值,这可能只是一个巧合,并且使外部映射的类型
map
将破坏期望读取这样的数据的代码,然后向外部映射添加其他类型的值,如字符串

因此,类型是
Map
,如果您知道它只包含贴图,并且您不打算更改它,那么您可以执行以下操作:

Map-Map=jsonDecode(…);
var mapmap=map.cast();
打印(地图[“键”][“其他键]);
这将包装原始映射,以便在查找值时将值转换为
map
,这样您就不必自己进行操作


如果你把一些非映射的东西放到原始映射中,比如
map[“gotcha”]=“string”
,则当您尝试读取时,
mapmap[“gotcha”]
将抛出一个类型错误。所以不要这样做。

JSON解析器不会尝试猜测映射元素的类型。所有JSON对象都被解析为
Map
类型的映射。这允许您向映射添加任何值并将其转换回JSON。事实上,您的映射只包含其他映射作为值,这可能只是一个巧合,并且使外部映射的类型
map
将破坏期望读取这样的数据的代码,然后向外部映射添加其他类型的值,如字符串

因此,类型是
Map
,如果您知道它只包含贴图,并且您不打算更改它,那么您可以执行以下操作:

Map-Map=jsonDecode(…);
var mapmap=map.cast();
打印(地图[“键”][“其他键]);
这将包装原始映射,以便在查找值时将值转换为
map
,这样您就不必自己进行操作

如果你把一些非映射的东西放到原始映射中,比如
map[“gotcha”]=“string”
,则当您尝试读取时,
mapmap[“gotcha”]
将抛出一个类型错误。所以不要这样做。

你应该使用
Map
而不是
Map
你应该使用
Map
而不是
Map