Flutter:使用带有继承的 JsonSerialized 和干净的架构

Mac*_*ich 6 json dart flutter clean-architecture json-serializable

我试图通过这个YouTube 教程遵循 Clean Architecture ,因此我在数据层中有一组模型对象来扩展实体对象。

由于我有很多模型,其中一些模型有很多字段,我希望使用json_serializable包来自动生成样板代码,这些代码是工厂以及与 Json 和 fromJson 转换器方法相关的样板代码。

但是运行时:

flutter pub run build_runner 构建

它失败:

[严重]由于类型原因,无法生成fromJson代码。serversServer

我的数据架构如下,在数据层:

- HostModel extends Host(Entity)
    - String name,
    - List<ServerModel> servers,

- ServerModel extends Server(Entity)
    - ... // many many fields
Run Code Online (Sandbox Code Playgroud)

然而,当且仅当所有实体类都用 注释时,@JsonSerializable(explicitToJson: true)我才设法使其工作。

这对我来说非常困扰,因为我了解到清洁架构通过层分离所有关注点并遵循 SOLID 原则。所以我认为实体不应该“意识到”原始模型。并且反序列化方法应该可以用任何其他方法(例如 XML)替代,这显然违反了这里的原则。

我该如何解决这个问题?谢谢您的帮助!