Flutter,将Json从Firestore文档解析为映射失败

时间:2019-03-11 19:50:23

标签: json flutter

尝试解析此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获取数据存在问题

1 个答案:

答案 0 :(得分:1)

想通了,应该是:

  

Map items =((作为地图的json ['items'])。cast ())。map((k,v)=> MapEntry(k,ItemData.fromJson( v.cast ())));