1

我是 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

我在这里做错了什么?

提前致谢。

4

1 回答 1

1

看起来是正确的。cast是一种方法Iterable。尖括号中的类型是迭代中每个元素的类型。

https://api.dart.dev/stable/2.7.1/dart-core/Iterable/cast.html

于 2020-02-09T00:29:20.057 回答