Заставить Джексона интерпретировать одно значение JSON - PullRequest
0 голосов
/ 17 сентября 2018

Я ищу решение этой проблемы и ничего не могу найти.

У меня есть этот ответ JSON от HttpURLConnection:

"OK"

На первый взгляд ямне показалось, что такой ответ был неправильным, потому что я всегда видел пару ключ -> значение JSON.После того, как я прочитал, что JSON может принять эту форму , я узнал:

enter image description here

И https://jsonlint.com/ дайте мне Действительный ответ JSON , если попытаться проверить "OK", поэтому я думаю, что это правильно.И теперь мой вопрос: Как я могу сопоставить класс Java (называемый RestResponse) с этим ответом JSON в Джексоне?

Я пробую это, но не работаю, дайте мне JsonMappingException: no single-String constructor/factory method:

final String json = "OK";

final ObjectMapper mapper = new ObjectMapper()
        .enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
final RestResponse response = mapper.readValue(json, RestResponse.class);

Я даже не знаю, с чего начать мой класс RestResponse java, потому что у него нет атрибутов, которые могут помечаться аннотацией Джексона, как @JsonProperty.

Кто-нибудь знает, почему Джексон не принимает во внимание этот случай ответа? Или есть просто другой метод?

Спасибо, ребята.

1 Ответ

0 голосов
/ 17 сентября 2018

Вашему RestResponse понадобится конструктор, который принимает одну строку. Аннотируйте конструктор с помощью @JsonCreator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...