Java Джексон org.codehaus.jackson.map.exc.UnrecognizedPropertyException - PullRequest
3 голосов
/ 10 июня 2011

Я связываю JSON-ответ с моим классом, используя Джексона. Все прекрасно работает, кроме случаев, когда в моем ответе JSON больше полей, чем определяет мой класс. Я хочу, чтобы Джексон игнорировал поля, которые не существуют в моем ответе JSON. Это связано с совместимостью для будущих версий. Если я добавлю новое поле, я не хочу, чтобы предыдущие версии моего клиента зависали.

Идеи

ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
        PromoResponse promoResponse = mapper.readValue(r, PromoResponse.class);

Ответы [ 2 ]

9 голосов
/ 10 июня 2011

Вы можете поместить аннотацию @JsonIgnoreProperties(ignoreUnknown=true) в свой класс PromoResponse.

5 голосов
/ 10 июня 2011

Полагаю, вы захотите сделать что-то подобное после того, как объявите свой объект сопоставления:

mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

-Dan

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