gpt4 book ai didi

dart - 如何修复此错误 : '_InternalLinkedHashMap' is not a subtype of type 'Map'

转载 作者:IT王子 更新时间:2023-10-29 06:58:56 25 4
gpt4 key购买 nike

我尝试在我的 flutter 应用程序中解析来自 Firestore 的文档。

Firestore 文档:

enter image description here

我创建了两个类来解析这个文档。

类产品:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com