I am parsing a JSON array to an Iterable<Dto> such as:
final Iterable l = json.decode(resp.body);
Iterable<Dto> dtos = l.map((data) => Dto.fromJson(data));
But it results in _TypeError (type 'MappedListIterable<dynamic, dynamic>' is not a subtype of type 'Iterable<Dto>') when we chain the two statements in:
Iterable<Dto> dtos = json
.decode(resp.body)
.map((data) => Dto.fromJson(data));
Notice, this is the result of the refactor operation Inline Local Variable.
So, how should we properly refactor with 'Inline Local Variable'?
CodePudding user response:
You can try below lines;
Iterable<Dto> dtos = (json.decode(resp.body) as Iterable)
.map((data) => Dto.fromJson(data));
CodePudding user response:
you can also get them as List:
var l = json.decode(resp.body);
List<Dto> dtos = l.map((data) => Dto.fromJson(data)).toList();
