deserializeData static method
Désérialise les données JSON en objets Student
et School
.
data
: Données JSON lues depuis un fichier.
Retourne une Map<String, List<dynamic>>
contenant les listes d’objets students
et schools
.
Lance une exception si les clés requises sont absentes.
Implementation
static Map<String, List<dynamic>> deserializeData(Map<String,dynamic> data){
List<Student> students = [];
List<School> schools = [];
if ((!data.containsKey(jsonStudentName)) || (!data.containsKey(jsonSchoolName)) ){
throw Exception("404 - File doesn't have the required field to reconstruct the data");
}
print(data);
List<dynamic> jsonSchools = data[jsonSchoolName];
List<dynamic> jsonStudents = data[jsonStudentName];
for (var entry in jsonSchools){
schools.add(School.fromJson(entry));
}
School.setGlobalID(schools.length);
int i = 0;
for (var entry in jsonStudents){
students.add(Student.fromJson(entry));
print("Does this student have the accepted field : ${students[i].accepted}");
i++;
}
print("Currently ${students.where((e) => e.accepted != null).length} Students has an acceptedChoice");
print("Currently There is ${schools.length} schools - exact data is \n ${schools}");
return {
"schools" : schools,
"students" : students,
};
}