Flutter json.decode不转换映射<;字符串,Map<;字符串,动态>&燃气轮机;
我有这样的json称为resultMapFlutter 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。事实上,您的映射只包含其他映射作为值,这可能只是一个
{
"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