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

问题描述 投票:1回答:1

试图解析这个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的位置是:

factory ItemData.fromJson(Map<String, dynamic> json){
    return ItemData(
        uID : json['uID'],
        count : json['count']
    );
}

我收到以下错误:

类型'_InternalLinkedHashMap <dynamic,dynamic>'不是'Map <String,dynamic>'类型的子类型

值得一提的是,从本地文件解析相同的json时,此代码可以正常工作。似乎从Firestore获取数据存在问题

json flutter
1个回答
1
投票

想出来,它应该是:

Map <String,ItemData> items =((json ['items'] as Map).cast <String,dynamic>())。map((k,v)=> MapEntry(k,ItemData.fromJson(v.cast) <String,dynamic>())));

© www.soinside.com 2019 - 2024. All rights reserved.