gpt4 book ai didi

dart - 在 dart 或 flutter 中将 LinkedHashMap 转换为 HashMap>

转载 作者:IT王子 更新时间:2023-10-29 06:53:19 26 4
gpt4 key购买 nike

大家好,我是 flutter 和 dart 的新手。我在打字 map 时遇到困难。我以 HashMap<String,List<String>> 的格式在 Firestore 上保存了一些数据.在我的 flutter 应用程序中,当我获取此数据时,我以 LinkedHashMap<dynamic,dynamic> 的格式获取它.我想转换这个 LinkedHashMap进入HashMap<String,List<String>> .请帮忙。

LinkedHashMap<dynamic,dynamic> mapUserWatchlistCompanies= documentSnapshot.data['Watchlist']; // Fetched data.

HashMap<String,List<String>> hashMapUserWatchlist = ???//How can it be converted? Need help here.

最佳答案

dart 中的类型转换与您在 Java 或 Swift 中获得的有点不同。在 Dart 中,你必须在 dynamic 时正确地转换所有东西。参与其中。

现在在你的例子中你得到一个 LinkedHashMap<dynamic, dynamic> ,现在在 JSON 的情况下,可以安全地假设键将始终是 String值,但是 value键可以是多种类型(数字、字符串、 bool 值、映射或列表)。

因此,如果您有以下形式的 JSON:

{
"keyOne": ["One", "Two","whatever"],
"keyTwp": ["roses", "are", "red"],
"keyThree":["You", "know", "nothing", "john", "nonw"]
}

这是一个HashMap<String, List<String>> , 但 dart 最初会得到一个 LinkedHashMap<dynamic, dynamic> ,您可以使用以下代码安全地转换它:

 LinkedHashMap<dynamic, dynamic> theParsedOne = .....
HashMap<String, List<String>> newMap = HashMap.from(theParsedOne.map((key, value) {
List<dynamic> values = List.from(value);
return MapEntry(
key.toString(),
values.map((theValue) {
return theValue.toString();
}).toList());
}));

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com