【发布时间】:2020-10-07 05:56:36
【问题描述】:
这是我通过http请求得到的json字符串。 目的是根据当前工作日显示主题。
{
"first_name": "First Name",
"batch_name": "Batch 1",
"enrolled_subjects": [
"Subject 4",
"Subject 5"
],
"batch_timetable": {
"Mon": {
"Subject 4": [
"6:00 PM - 7:00 PM"
],
"Subject 5": [
"5:00 PM - 6:00 PM",
"7:00 PM - 8:00 PM"
],
"Subject 6": [
"8:00 PM - 9:00 PM"
]
},
"Tue": {
"Subject 4": [
"6:00 PM - 7:00 PM"
],
"Subject 5": [
"7:00 PM - 8:00 PM"
],
"Subject 6": [
"8:00 PM - 9:00 PM"
]
}, ...so on upto "Sun"
}
}
如何为这个json字符串设置模型类?
我尝试了这个模型类,但它给出了这个错误:type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, List<dynamic>>'
我也尝试过通过 quicktype 的 Model Class,但我认为这在这种情况下行不通。
class HomePageModel {
HomePageModel({
this.firstName,
this.batchName,
this.subjects,
this.timetable,
});
String firstName;
String batchName;
List<String> subjects;
Map timetable;
factory HomePageModel.fromJson(Map<String, dynamic> json) => HomePageModel(
firstName: json["first_name"],
batchName: json["batch_name"],
subjects: List<String>.from(json["subjects"].map((x) => x)),
timetable: Map.from(json["timetable"])
.map((key, value) => MapEntry(key, value)),
);
Map<String, dynamic> toJson() => {
"first_name": firstName,
"batch_name": batchName,
"subjects": List<dynamic>.from(subjects.map((x) => x)),
"timetable":
Map.from(timetable.map((key, value) => MapEntry(key, value))),
};
}
我正在使用 FutureBuilder 将这些数据显示到 UI 中。 任何帮助将不胜感激。
【问题讨论】:
标签: json flutter dart json-serialization