Я использовал Jersey 1.16
, чтобы потреблять JSON
, но теперь я с трудом потребляю JSON с использованием Джерси 2.0 (который реализует JAX-RS 2.0).Прочтите JSON with Jersey 2.0 (JAX-RS 2.0)
У меня есть ответ JSON как это:
{
"id": 105430,
"version": 0,
"cpf": "55443946447",
"email": "[email protected]",
"name": "Maria",
}
и метод, который потребляет его:
public static JSONObject get() {
String url = "http://127.0.0.1:8080/core/api/person";
URI uri = URI.create(url);
final Client client = ClientBuilder.newClient();
WebTarget webTarget = client.target(uri);
Response response = webTarget.request(MediaType.APPLICATION_JSON).get();
if (response.getStatus() == 200) {
return response.readEntity(JSONObject.class);
}
}
Я также попытался:
return webTarget.request(MediaType.APPLICATION_JSON).get(JSONObject.class);
Но JSONObject возвращение null. Я не понимаю свою ошибку, потому что ответ в порядке!
Можете ли вы рассказать подробнее о том, что такое '' JSONObject'? Что, если вы измените тип возврата на 'String'? Потому что, используя 'String', вы должны получить полезную нагрузку. Если нет, вы должны проверить свой URL. Если URL-адрес правильный, значит, у вас проблема с сервером. Теперь, если полезная нагрузка - ожидаемый JSON, тогда ваша проблема не имеет «MessageBodyReader», который поддерживает ваш 'JSONObject'. –
JSONObject - это класс [Jettison API] (http://jettison.codehaus.org/). Это набор пар ключ/значение [Docs] (http://jettison.codehaus.org/apidocs/org/codehaus/jettison/json/JSONObject.html). Используя JSONObject, я могу получить значение с помощью метода get(). –
URL-адрес правильный, потому что статус в порядке (200 - запрос выполнен успешно). –