Получение ответа от отдыхающего клиента как объекта Java - PullRequest
0 голосов
/ 02 июня 2018

Я прочитал учебник по Джерси , и похоже, что его веб-клиент возвращает ответ типа 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?

1 Ответ

0 голосов
/ 02 июня 2018

Предлагаю вам прочитать Главы 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...