在_InternalLinkedHashMap上迭代不起作用



我正在尝试迭代以下数据结构:{String: [{String, List<SomethingResponse>}]},其中SomethingResponse = {String: dynamic})。我创建了这个模型:

class SomethingsResponse {
final Map<String, List<SomethingResponse>> SomethingsResponse;
SomethingsResponse({this.SomethingsResponse});
factory SomethingsResponse.fromJson(data) {
return SomethingsResponse(SomethingsResponse: data.map<String, List<SomethingResponse>>((String key, dynamic value) {
final dataFromCategory = List<SomethingResponse>.from(value.map((x) => SomethingResponse.fromJson(x)));
return MapEntry(key, dataFromCategory);
}));
}
}

当我尝试获得这样的密钥:data.somethingsResponse.toList()时,我会得到一个错误,说:

Class'_InternalLinkedHashMap<字符串,列表>'没有实例方法"toList"。

我无法对其进行迭代,也无法从中获取任何类型的数据。我做错了什么,如何修复?我觉得问题出在return MapEntry(key, dataFromCategory);这一行,但我尝试了几种不同的方式创建Map,但都没有成功。

如果您查阅Map的文档,您会发现它不是从Iterable派生的,因此无法直接迭代。我认为这是因为您想要迭代的不明显:键、值或键值对?

如果要迭代键,请使用Map.keys。(在您的情况下:data.somethingsResponse.keys.toList()(

如果要对值进行迭代,请使用Map.values

如果要迭代键值对(即MapEntry对象(,请使用Map.entries

最新更新