Сортировать JSON данные на основе вложенного поля - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь решить эту проблему в 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 по-другому и пытаться отсортировать? Также, как видно из примера, должны обрабатываться нулевые значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...