Я новичок в Dart, и мне было интересно, как метод .cast()
работает с динамическими типами и списками c.
Это рабочий пример из документации Flutter о том, как вручную анализировать JSON в Dart:
List<Photo> parsePhotos(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Photo>((json) => Photo.fromJson(json)).toList();
}
, где responseBody
- некоторый массив JSON, ранее полученный из HTTP конечная точка.
Я не понимаю, почему результат json.decode(responseBody)
приведен к Map<String, dynamic>
, если по логике он должен быть List<Map<String, dynamic>>
. Я отладил код, и на самом деле переменная parsed
является подтипом списка.
Что я здесь не так делаю?
Заранее спасибо.