【发布时间】:2020-05-24 16:41:45
【问题描述】:
我是 Dart 新手,想知道 .cast() 方法如何与动态类型和列表一起使用。
这是 Flutter 文档中关于如何在 Dart 中手动解析 JSON 的工作示例:
List<Photo> parsePhotos(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Photo>((json) => Photo.fromJson(json)).toList();
}
其中responseBody 是之前从 HTTP 端点获取的一些 JSON 数组。
我不明白为什么json.decode(responseBody) 的结果被转换为Map<String, dynamic>,而逻辑上它应该是List<Map<String, dynamic>>。我已经调试了代码,实际上变量parsed 是一个列表子类型。
我在这里做错了什么?
提前致谢。
【问题讨论】: