作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我尝试在我的 flutter 应用程序中解析来自 Firestore 的文档。
Firestore 文档:
我创建了两个类来解析这个文档。
类产品:
class Produkt{
String name;
int anzahl;
Produkt({
this.name,
this.anzahl,
});
factory Produkt.fromJson(Map<String, dynamic> parsedJson){
return Produkt(
name:parsedJson['Name'],
anzahl:parsedJson['Anzahl']
);
}
}
类产品列表:
class ProduktList{
final List<Produkt> produkte;
ProduktList({
this.produkte,
});
factory ProduktList.fromJson(Map<String, dynamic> parsedJson){
var list = parsedJson["Produkte"] as List;
List<Produkt> produkte = list.map((i) => Produkt.fromJson(i)).toList();
return ProduktList(
produkte: produkte,
);
}
}
当我构建这个时抛出异常:
type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>'
我认为,错误发生在这里:
List<Produkt> produkte = list.map((i) => Produkt.fromJson(i)).toList();
你们知道我该如何解决这个问题吗?感谢您的回答!
最佳答案
您为 parsedJson
使用的 map 对象显然不是 Map<String, dynamic>
.
假设我们能够将此对象转换为 Map<String, dynamic>
, 尝试:
List<Produkt> produkte = list.map((i) => Produkt.fromJson(i.cast<String, dynamic>())).toList();
或:
List<Produkt> produkte = list.map((i) => Produkt.fromJson(Map<String, dynamic>.from(i))).toList();
在这里看看类似的问题: How to cast an `_InternalLinkedHashMap` created from json?
如果没有帮助,请添加您如何使用的代码ProduktList.fromJson
, 所以我们有更多关于错误的信息。
关于dart - 如何修复此错误 : '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54167985/
我是一名优秀的程序员,十分优秀!