首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Map<String,dynamic> to Map<String,Map<String,String>> in Dart

Map<String,dynamic> to Map<String,Map<String,String>> in Dart
EN

Stack Overflow用户
提问于 2021-02-17 21:09:05
回答 1查看 201关注 0票数 0

我正在尝试将Map<String,dynamic>转换为Map<String, Map<String, String>>

代码语言:javascript
复制
Map<String,dynamic> oldMap = querySnapshot.docs.first.data()["cach"];

Map<String, Map<String, String>> newMap = oldMap.map((a, b) => MapEntry(a, b as Map<String, String>)); 

但我有个错误:

代码语言:javascript
复制
Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, String>' in type cast
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-17 23:55:43

代码语言:javascript
复制
import 'dart:convert';

const rawData = '''
{"a": {"b": "c"}, "d":{"e": "f"}}
''';

Map<String, String> convert(Map<String, dynamic> data) {
  return Map<String,String>.fromEntries(data.entries.map<MapEntry<String,String>>((me) => MapEntry(me.key, me.value)));
}

void main(List<String> args) {
  var oldMap = jsonDecode(rawData) as Map<String, dynamic>;
  var newMap = Map.fromEntries(oldMap.entries.map((me) => MapEntry(me.key, convert(me.value))));
 
  print(newMap.runtimeType);
}

结果:

代码语言:javascript
复制
_InternalLinkedHashMap<String, Map<String, String>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66249980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档