JSON: Нераспознанное поле «значение» (<objectClass>), не помечено как игнорируемое - PullRequest
8 голосов
/ 20 февраля 2012

Может ли кто-нибудь помочь мне выяснить, что нужно добавить?

JSON:

{"value":{"keyword":"better","correct":"","page":0,"size":10,"cost":51,"total":1107}}

Класс объекта

@JsonAutoDetect
@JsonSerialize(include = Inclusion.NON_NULL)
@JsonRootName(value = "value")    
public class Response {

private int page;
private int size;
private int total;
private int cost;
private int result;

private String keyword;
private String correct;

Тем не менее он получает "Сервлет".service () для сервлета appServlet сгенерировал исключение

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: нераспознанное поле «value» (), не помеченное как игнорируемое

1 Ответ

9 голосов
/ 21 февраля 2012

Попробуйте добавить это в вашу конфигурацию маппера

mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);

Если вы используете RestTemplate, вам нужно будет настроить соответствующий картограф Джексона. Вы можете сделать это, настроив свой маппер и установив его в конвертере. См. Код ниже.

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);


MappingJacksonHttpMessageConverter messageConverter = new MappingJacksonHttpMessageConverter();
messageConverter.setObjectMapper(mapper);
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(messageConverter);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);

Подробнее см. Здесь: https://jira.springsource.org/browse/ANDROID-45

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