Как с помощью JAX-RS собрать массив данных, возвращаемых службой API, в список объектов Java?

Как правильно получить список объектов из службы API с помощью JAX-RS?

Среда: Helidon (MP 1.4.4), Java 8. Служба внешнего API возвращает массив объектов. Paper это POJO.

Client client = ClientBuilder.newClient();
...
...
public List<Paper> getPapers() {
   return client
            .target(REST_URI)
            .request(MediaType.APPLICATION_JSON)
            .header("api-key", "xxxxxx")
            .get(new GenericType<List<Paper>>() { });
}

Ошибка:

javax.ws.rs.client.ResponseProcessingException: javax.json.bind.JsonbException: Can't deserialize JSON array into: class java.lang.String

1 ответ

Вы должны использовать массивы вместо . Конечно, вы все еще можете преобразовать массив вListили любой другой тип коллекции, если вам нужно.

      public Paper[] getPapers() {
   return client
            .target(REST_URI)
            .request(MediaType.APPLICATION_JSON)
            .header("api-key", "xxxxxx")
            .get(Paper[].class);
}
Другие вопросы по тегам