Свяжите JSON со списком в записях - PullRequest
0 голосов
/ 21 декабря 2018

Когда мне нужно потребить простой json, я делаю это следующим образом

 HttpEntity<String> entity = new HttpEntity<>("parameters", header);
            ResponseEntity<List<RelatorioResponse>> response = rt.exchange(targetUrl, HttpMethod.GET, entity, new ParameterizedTypeReference<List<RelatorioResponse>>() {
            });
            List<RelatorioResponse> responses = response.getBody();

Мой ответ Класс

 @JsonProperty("relatorioID")
    private Integer relatorioID;

    @JsonProperty("professorID")
    private Integer professorID;

    @JsonProperty("alunoID")
    private Integer alunoID;

//getter setter

Все выходит, как и ожидалось, я могу справиться сданные обычно.

Проблема заключается в получении данных из JSON со списком, включенным в каждую запись, например:

[
  {
    "classID": 10,
    "id of students who missed class": [
      1,
      2
    ]
  },
  {
    "classID": 20,
    "id of students who missed class": [
      3,
      4,
      8 
    ]
  }
]

complete json

 [{"classID":10,"id of students who missed class":[1,2]},{"classID":20,"id of students who missed class":[3,4]},
{"classID":50,"id of students who missed class":[2,33,9,45,35]},{"classID":56,"id of students who missed class":[1,6,7]},{"classID":20,"id of students who missed class":[12]},
{"classID"87,"id of students who missed class":[3,6,8,45,7,9]},{"classID":12,"id of students who missed class":[1,2,74,45,36]},{"classID":20,"id of students who missed class":[2,9,36,5]},
{"classID":41,"id of students who missed class:"[5,6,9,8,7]}]

Inв этом случае, как это должен быть мой класс связывания, объект типа Class и внутри него массив целых чисел, где будут аннотации @JsonProperty?

1 Ответ

0 голосов
/ 21 декабря 2018

Вы можете использовать int[], чтобы отобразить идентификаторы студентов:

public class Attendance {

    @JsonProperty("classID")
    private int classId;

    @JsonProperty("id of students who missed class")
    private int[] missingStudentIds;

}

и прочитать ваш полный JSON в виде массива:

ObjectMapper mapper = new ObjectMapper();
Attendance[] obj = mapper.readValue(json, Attendance[].class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...