Шаблон Spring Rest Json отображение вывода на объект - PullRequest
2 голосов
/ 07 августа 2020

Когда я вызываю API с использованием шаблона Spring Rest, получаю ответ Json, как показано ниже

[
  {
    "Employee Name": "xyz123",       
    "Employee Id": "12345"
  }
]

Я был создан объект для сопоставления ответа json, как показано ниже:

public class Test {
    
    @JsonProperty("Employee Name")
    private String employeeName;
    
    @JsonProperty("Employee Id")
    private String employeeId;

}

Но я получаю ошибку ниже, когда делаю вызов api rest:

JSON ошибка синтаксического анализа: невозможно десериализовать экземпляр com.pojo.Emp из токена START_ARRAY; вложенное исключение com.faster xml .jackson.databind.ex c .MismatchedInputException: невозможно десериализовать экземпляр com.pojo.Emp из токена START_ARRAY \ n в [Источник: (PushbackInputStream); строка: 1, столбец: 1

Как сопоставить шаблон Rest Json ответ на объект, когда Json имеет пробелы в ключах параметров?

Ответы [ 2 ]

2 голосов
/ 07 августа 2020

Ваш ответ JSON представляет собой массив объектов, поскольку он заключен в [], поэтому сопоставьте данные с List<Emp>. Здесь используется ParameterizedTypeReference для создания TypeReference List<Emp>

ResponseEntity<List<Emp>> response = restTemplate.exchange(endpointUrl, 
                                                  HttpMethod.GET,httpEntity,
                                             new ParameterizedTypeReference<List<Emp>>(){}); 
List<Emp> employees = response.getBody();
0 голосов
/ 07 августа 2020

Похоже, вы пытаетесь сопоставить массив с объектом. Вы можете сделать что-то вроде этого

ResponseEntity<Test[]> response =
  restTemplate.getForEntity(
  url,
  Test[].class);
Test[] employees = response.getBody();

Для получения дополнительной информации проверьте этот пост

...