Создание POJO и возврат нескольких значений объекта

Я читаю из JSON формата:

{
 "student" : [ 
  {
   "roll" : 1, 
   "name" : "abc",
   "subjects" : [
     {
      "major" : "chemistry", 
      "minor" : "maths"
     }, 
     {
      "major" : "biology", 
      "minor" : "physics" 
     } 
   ]
  }, 
  {
   "roll" : 2, 
   "name" : "xyz", 
   "subjects" : [
     {
      "major" : "english", 
      "minor" : "biology"
     }, 
     {
      "major" : "english", 
      "minor" : "physics" 
     }
   ]
  } 
 ]
}

Я прикрепляю ученика к строке и превращаю детали каждого ученика - «список, имя, предметы» в POJO.

  1. ObjectMapper mapper = новый ObjectMapper ();
    Карта ‹Строка, объект списка = mapper.readValue (Json,?);
    Когда я даю 'Map.class', я получаю сообщение об ошибке, а когда я даю новый TypeReference ‹Map‹ String, List ›› () {}, он сохраняет пакет, а не json в POJO. Что я даю вместо "?"

  2. Как лучше всего вернуть все основные и второстепенные данные конкретного учащегося с указанием его имени? Что делать: хэш-карту или список? Или есть другой способ?


person Tisha    schedule 21.09.2020    source источник


Ответы (1)


Я предполагаю, что вы читаете строку JSON, и вам нужно преобразовать их в POJO, в этом случае вам нужно создать POJO, как показано ниже,


class Reports{
    
    private final List<Student> student;

   // getters & setters

}

class Student {

private final int roll;
private final String name;
private final List<Subject> subjects;

// getters & setters

}


class Subject{ 

private final String major;
private final String minor;

// getters & setters

}

Затем вы можете использовать, как показано ниже,

ObjectMapper mapper = new ObjectMapper();
Reports reports = mapper.readValue(jsonString, Reports.class);

Отредактировано POST

person prostý člověk    schedule 21.09.2020
comment
Поскольку студент не включен в POJO, выдается ошибка Неизвестный полевой студент - person Tisha; 22.09.2020