【发布时间】:2019-06-08 12:08:57
【问题描述】:
尝试使用 dart 的工厂概念转换嵌套 JSON 数据后出现错误。 这里我有两个类来处理 json 数据,但仍然得到这个错误:
发生了异常。 _TypeError(“FormatException”类型不是“Map”类型的子类型)
代码如下:
class BodyResponse {
final Map<String, dynamic> message;
BodyResponse({
this.message
});
factory BodyResponse.fromJson(Map<String, dynamic> json) {
return BodyResponse(message: json['message']);
}
}
class ErrorResponse {
final BodyResponse body;
final int status;
final String contentType;
final bool success;
ErrorResponse({
this.body, this.status, this.contentType, this.success
});
factory ErrorResponse.fromJson(Map<String, dynamic> json) {
return ErrorResponse(
body: BodyResponse.fromJson(json['body']),
status: json['status'],
contentType: json['content_type'],
success: json['success']
);
}
}
ErrorResponse errors = ErrorResponse.fromJson("""
{
"body": {
"message": "Some one has already taken this username(fooBar), please try again with a new username."
},
"status": 500,
"content_type": "application\/json",
"success": false
}
""");
print(errors);
这里可能出了什么问题?
【问题讨论】:
-
您作为参数传递给
ErrorResponse errors = ErrorResponse.fromJson(...)的值似乎是一个字符串,而函数期望它是一个映射 (Map<String, dynamic> json)。 -
@George 但仍然没有办法传递 JSON!