Aqueduct 和 Dart:Future<List<T>> (T = ManagedObject) 无法序列化为 JSON
Aqueduct and Dart: Future<List<T>> (T = ManagedObject) can't be serialized to JSON
我按照教程 here 来熟悉 Aqueduct 和 Dart。第 1 部分的代码运行良好,但一旦我从内存中的英雄列表转换为使用数据库,它就停止工作了。我确认数据库 (Postgres) 中有数据,并且后端已成功连接并从数据库读取数据。但是,出现无法序列化 ManagedObject 的错误。本教程中没有任何内容提及有关序列化的任何细节。我试图尝试将 @JsonSerializable 添加到我的模型 class 但仍然遇到同样的问题。似乎不是模型对象本身,而是 API 返回的事实:Future<List<Hero>>
?错误是:
Converting object to an encodable object failed: Instance of 'Future<List<Hero>>' #0 _JsonStringifier.writeObject (dart:convert/json.dart:649:7)
本教程似乎建议 class 扩展 ManagedObject 的实体可由 default/automagically 序列化。这个假设不正确吗? Aqueduct 网站上有一个开箱即用的教程,这似乎很奇怪。
我在数据库查询中遗漏了 await 关键字,这解释了为什么 API 调用返回的是 Future> 而不是实际的 List。呸!
我按照教程 here 来熟悉 Aqueduct 和 Dart。第 1 部分的代码运行良好,但一旦我从内存中的英雄列表转换为使用数据库,它就停止工作了。我确认数据库 (Postgres) 中有数据,并且后端已成功连接并从数据库读取数据。但是,出现无法序列化 ManagedObject 的错误。本教程中没有任何内容提及有关序列化的任何细节。我试图尝试将 @JsonSerializable 添加到我的模型 class 但仍然遇到同样的问题。似乎不是模型对象本身,而是 API 返回的事实:Future<List<Hero>>
?错误是:
Converting object to an encodable object failed: Instance of 'Future<List<Hero>>' #0 _JsonStringifier.writeObject (dart:convert/json.dart:649:7)
本教程似乎建议 class 扩展 ManagedObject 的实体可由 default/automagically 序列化。这个假设不正确吗? Aqueduct 网站上有一个开箱即用的教程,这似乎很奇怪。
我在数据库查询中遗漏了 await 关键字,这解释了为什么 API 调用返回的是 Future> 而不是实际的 List。呸!