一尘不染

Dart内置值反序列化对象列表

flutter

我有一个返回对象列表的API …

[{}, {}, {}, ...]

我已经为每个对象都有一个已定义且可以正常工作的build_value模型。但是,现在我需要对列表进行反序列化。

我目前正在尝试这样的事情:

 List<Map<String, dynamic>> json = JSON.decode(DEMO_TASK);
 json.expand<Task>((Map<String, dynamic> map) => _serializers.deserializeWith<Task>(Task.serializer, map));

但是,这会引起问题,因为它说_serializers.deserializeWith返回类型Task不是Iterable<Task>闭包定义的类型。

我要如何反序列化列表。我确定我缺少一些超级基础的东西。


阅读 450

收藏
2020-08-13

共1个答案

一尘不染

对。我错过了一些基本的知识。我当时以为我正在使用流,但是由于它是列表,因此只需要.map在列表上使用该函数即可。

List<Map<String, dynamic>> json = JSON.decode(DEMO_TASK);
    List<Task> tasks = json.map<Task>((Map<String, dynamic> map) => _serializers.deserializeWith<Task>(Task.serializer, map)).toList();
2020-08-13