Получение ответа от клиента отдыха как объекта Java

76
6

Я прочитал учебник по Джерси, и кажется, что его веб-клиент возвращает ответ типа String, то есть мне нужно разобрать ответ самостоятельно.

Есть ли какая-либо библиотека на Java (или сторонней), которая может автоматически преобразовывать ответ из JSON в Java? Это может иметь смысл с помощью дженериков. например, скажем, я ожидаю, что тело ответа будет массивом Person, тогда я бы сделал что-то вроде:

FooResponse response = FooRestClient.makeRequest<Person[]>("http://www.foo.com/api/people","GET");

Person[] people = response.status == 200 ? response.body : [];

Если нет способа сделать это (или подобное), какой самый простой способ проанализировать ответ, а затем преобразовать тело ответа в объект Java?

спросил(а) 2018-06-02T06:28:00+03:00 2 года, 1 месяц назад
1
Решение
54

Я предлагаю вам прочитать главу 8 и 9 документов Джерси. Глава 8 посвящена провайдерам сущностей и объясняет, как преобразование выполняется с разных типов Java. Например, преобразование из JSON в POJO. В главе 9 обсуждаются некоторые провайдеры, предоставленные Джерси, в том числе для конвертации JSON/XML в POJO.

После того, как вы зарегистрировали одного из этих поставщиков сущностей, вы сможете сделать нужные вам конверсии, более того, это просто строки. Например, если вы добавите поставщика jersey-media-json-jackson, вы можете конвертировать JSON в POJO.

Response res = client.target(url).request().get();
MyPojo pojo = res.readEntity(MyPojo.class);

ответил(а) 2018-06-02T06:35:00+03:00 2 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема