>"转换为 "Map>"-6ren"> >"转换为 "Map>"-我想投一个Map至Map> . 我在 Flutter 中尝试了以下方法: Map dynamicMap = { 'a': ['1', '2', '3'], 'b': ['1', '2', '3-6ren">
gpt4 book ai didi

flutter - 将 "Map>"转换为 "Map>"

转载 作者:行者123 更新时间:2023-12-03 03:23:08 25 4
gpt4 key购买 nike

我想投一个Map<String, dynamic>Map<String, List<String>> .

我在 Flutter 中尝试了以下方法:

Map<String, dynamic> dynamicMap = {
'a': ['1', '2', '3'],
'b': ['1', '2', '3'],
'c': ['1', '2', '3'],
};
Map<String, List<String>> typedMap = dynamicMap;

但是得到如下错误:

type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, List<String>>'

然后我尝试了:

Map<String, List<String>> typedMap = dynamicMap.cast<String, List<String>>();

这似乎最初有效,但在尝试使用它时会遇到相同的错误,例如 print(typedMap) .

感谢您的帮助。

编辑

值得一提的是:

Map<String, dynamic> dynamicMap = {
'a': ['1', '2', '3'],
'b': ['1', '2', '3'],
'c': ['1', '2', '3'],
};
Map<String, List<String>> typedMap = dynamicMap.cast<String, List<String>>();

确实有效(对问题中的错误表示歉意)。

但是,当数据来自 json 时,如下所示:

String rawJson = """{
"a": ["1", "2", "3"],
"b": ["1", "2", "3"],
"c": ["1", "2", "3"]
}""";
final Map<String, dynamic> dynamicMapFromJson = json.decode(rawJson);
Map<String, List<String>> typedMap = dynamicMapFromJson.cast<String, List<String>>();

代码不再有效并引发了上述异常。

下面的答案有助于解决这个问题。

最佳答案

Map 方法可以帮助您转换成您想要的类型。

查看后续代码。

我还演示了如何以列表的形式访问 map 的所有值。我希望这对你有用。

Map<String, dynamic> dynamicMap = {
'a': ['1', '2', '3'],
'b': ['1', '2', '3'],
'c': ['1', '2', '3'],
};
Map<String, List<String>> typedMap =
dynamicMap.map((key, value) => MapEntry(key, value));

typedMap.forEach((key, value) {
print(value[0]);
});

关于flutter - 将 "Map<String, List<dynamic>>"转换为 "Map<String, List<String>>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61014768/

25 4 0