Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Игнорировать null при десериализации JSON

#java #spring #jackson


Делаю мапинг JSON в иерархию объектов. Есть поле типа класса, которое в JSON может
быть null. Jackson в спринге валится при попытке маппировать это нулевое поле в объект.
Как сделать, чтобы если вложенный джейсон равен null, то и ссылка на соответствующий
объект была null? @JsonIgnore работает только при сериализации, а я десериализую JSON.
    


Ответы

Ответ 1



Если вы используете Spring boot, тогда это можно настроить в application.properties. spring.jackson.deserialization.fail-on-unknown-properties=false Если у вас не spring boot приложение, тогда надо сделать бин со следующими настройками: @Bean ObjectMapper objectMapper() { return Jackson2ObjectMapperBuilder.json() .failOnUnknownProperties(false) .build(); }

Ответ 2



Добавь свой десериалайзер public final class JsonWithNullDeserializer extends JsonNodeDeserializer { @Override public JsonNode getNullValue(DeserializationContext ctxt) { return null; } } И задай этот десериалайзер везде где нужно @JsonDeserialize(using = JsonWithNullDeserializer.class)

Комментариев нет:

Отправить комментарий