Я пытаюсь решить эту проблему в Java. Мне нужно прочитать данные студента в формате JSON с URL-адреса и вывести их после сортировки. Модель:
[
{
"name": "string",
“lecturers”: [
{
"name": "string",
“subject”: "string"
}
]
}
]
Ниже приведен пример того, как выглядят данные JSON:
[
{
"name": “Jack”,
“lecturers”: [
{
"name": “Mr.Smith”,
“subject”: “Music”
},
{
"name": “Mr.Cooper”,
“subject”: “Physics”
},
{
"name": “Miss.Rae”,
“subject”: ""
}
]
},
{
"name": “Dan”,
“lecturers”: [
{
"name": “Miss.Jane”,
“subject”: “Physics”
},
{
"name": “Mr.Smith”,
“subject”: “Music”
},
{
"name": “Mr.JJ”
}
]
},
{
“lecturers”: [
{
"name": “Mr.Higgs”,
“subject”: “Art”
},
{
"name": “Mr.Jones”,
“subject”: “Chemistry”
}
]
}
]
Вывод должен быть отсортирован в алфавитном порядке, как показано ниже:
Subject A
Lecturer X
Student E
Lecturer Y
Subject B
Lecturer A
Student C
Student D
Что я сделал до сих пор: Как показано ниже, прочитайте данные JSON, используя ObjectMapper библиотеки Джексона.
public class Student {
String name;
List<Lecturer> lecturers;
}
public class Lecturer {
String name;
String Subject;
}
List<Student> student = objectMapper.readValue(new URL(“myUrl”), new TypeReference<List<Student>>(){});
Как мне go о сортировке? Должен ли я использовать Java компаратор. Не уверен, как сортировать на основе поля из списка вложенных объектов. Или я должен хранить данные JSON по-другому и пытаться отсортировать? Также, как видно из примера, должны обрабатываться нулевые значения.