【发布时间】:2019-01-05 14:33:20
【问题描述】:
我想知道如何将嵌套的 json 解析为具有泛型类型的类。我的意图是用代码和消息包装来自后端的响应(例如包含令牌的 loginRespose)
我有
class BaseResponse<T>{
int code;
String message;
T responseObject;
BaseResponse.fromJson(Map<String, dynamic> parsedJson)
: code = parsedJson['Code'],
message = parsedJson['Message'],
responseObject = T.fromJson(parsedJson['ResponseObject']); //This is what I'd like to do
}
显然最后一行会抛出一个错误,因为 T 没有命名构造函数“fromJson”。 我尝试向 Type 添加一些限制,但没有找到任何解决方案。您对如何实现这一点有任何想法吗?
【问题讨论】:
-
我认为这是不可能的。没有构造函数接口,并且已禁用颤振
dart:mirror。也许直接存储在responseObjectjson 对象中。并单独解析。或者您可以将自定义反序列化器传递给fromJsonctor -
@RémiRousselet 谢谢你的回答。您介意举例说明其中一些解决方案吗?非常感谢
-
找到了更好的解决方案。这是:)
-
你可能想看看 built_value 包。它承诺“您可以设计的任何对象模型都可以序列化,包括充分利用泛型和接口。其他一些库需要具体类型或不完全支持泛型。”
-
@CarsonHolzheimer 这里最大的问题不是序列化,而是反序列化。
标签: json parsing generics dart flutter