deserializeData static method

Map<String, List> deserializeData(
  1. Map<String, dynamic> data
)

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,
  };
}