我试图在列表中获取一个复杂的json。但是,如果我尝试获取它说字符串不是子类型CourseParent的类型。
下面是我的模型类,它包含另一个模型
class Response {
bool success;
List<dynamic> errors;
CourseParent courses;
Response({this.success,this.errors,this.courses});
factory Response.fromJson(Map<String, dynamic> map) {
return Response(
errors: map['errors'],
success: map['success'],
courses: map['body'],
);
}
Map<String, dynamic> toJson() {
return {"success": success, "errors": errors, "courses": courses, };
}
@override
String toString() {
return 'Response{ success: $success, errors: $errors , courses: $courses }';
}
}
List<Response> profileFromJson(String jsonData) {
final data = json.decode(jsonData);
return List<Response>.from(data.map((item) => Response.fromJson(item)));
}
Response responseFromJson(String str) {
final jsonData = json.decode(str);
print("##-response"+jsonData.toString());
return Response.fromJson(jsonData);
}
String responseToJson(Response data) {
final jsonData = data.toJson();
print("##--encoding"+json.encode(jsonData));
return json.encode(jsonData);
}
请告诉我哪里做错了。
Course parent是object的数组列表
需要手动解析body
。例如:
factory Response.fromJson(Map<String, dynamic> map) {
return Response(
errors: map['errors'],
success: map['success'],
courses: map['body'].map((course) => CourseParent.fromJson(course)).toList(),
);
}