尝试解析此json:
"items":{
"A101": { "uID": "11", "count": 1 },
"A102": { "uID": "12", "count": 2 }
}
使用以下代码:
Map<String, ItemData> items = (json['items'] as Map).map((k, v) => MapEntry(k, ItemData.fromJson(v)));
ItemData工厂在哪里:
factory ItemData.fromJson(Map<String, dynamic> json){
return ItemData(
uID : json['uID'],
count : json['count']
);
}
然后出现以下错误:
类型'_InternalLinkedHashMap <动态,动态>'不是'地图<字符串,动态>'类型的子类型
重要的是要提及,当从本地文件解析相同的json时,此代码可以正常工作。似乎从Firestore获取数据存在问题
答案 0 :(得分:1)
想通了,应该是:
Map
items =((作为地图的json ['items'])。cast ())。map((k,v)=> MapEntry(k,ItemData.fromJson( v.cast ())));