我有两个类:BaseClass(BaseResponse)和DerivedClass(LoginResponse)。我正在使用fromJson方法反序列化它们。
我想了解如何为基类调用fromJson方法。
class BaseResponse {
int responseCode;
String responseMessage;
BaseResponse.fromJson(Map<String, dynamic> input)
: responseCode = input["ResponseCode"],
responseMessage = input["ResponseMessage"];
}
class LoginResponse extends BaseResponse {
String authenticationToken;
LoginResponse.fromJson(Map<String, dynamic> input)
: authenticationToken = input["AuthenticationToken"];
}
LoginResponse.fromJson(Map<String, dynamic> input)
给我一个错误,说:类'BaseResponse'没有未命名的构造函数。
感谢您的帮助。
谢谢。
答案 0 :(得分:0)
除非您出于某种原因绝对需要它,否则我不会为BaseResponse创建.fromJson。
我认为更好的方法是在基类中声明最终变量并在其中声明表达式,并且仅在派生类中实现模型或任何种类:
class BaseResponse {
final int responseCode;
final String responseMessage;
BaseResponse({@required this.responseCode, @required this.responseMessage)
: assert(<expression>);
}
class LoginResponse extends BaseResponse {
final String authenticationToken;
final int code;
final String message;
LoginResponse({
this.authenticationToken,
this.code,
this.message,
}) : super(code: code, message: message)
LoginResponse.fromJson(Map<String, dynamic> input) {
return LoginResponse(
authenticationToken: input['token'],
code: input['code'],
message: input['message'],
);
}
}