#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)
Комментариев нет:
Отправить комментарий