Last active
April 26, 2022 17:38
-
-
Save idserda/f9b6de130631575108138f1cd0aff879 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Define ObjectMapper | |
@Bean | |
public ObjectMapper objectMapper() { | |
SimpleModule serializerModule = new SimpleModule() { | |
@Override | |
public void setupModule(SetupContext context) { | |
super.setupModule(context); | |
context.addBeanDeserializerModifier(new BeanDeserializerModifier() { | |
@Override | |
public JsonDeserializer<?> modifyCollectionDeserializer( | |
DeserializationConfig config, | |
CollectionType type, | |
BeanDescription beanDesc, | |
JsonDeserializer<?> deserializer) { | |
return new NullEmptyCollectionDeserializer(deserializer); | |
} | |
}); | |
} | |
}; | |
return new ObjectMapper().registerModule(serializerModule); | |
} | |
# And the custom Deserializer | |
public class NullEmptyCollectionDeserializer extends DelegatingDeserializer { | |
public NullEmptyCollectionDeserializer(JsonDeserializer<?> delegate) { | |
super(delegate); | |
} | |
@Override | |
protected JsonDeserializer<?> newDelegatingInstance(JsonDeserializer<?> newDelegatee) { | |
return new NullEmptyListCollectionDeserializer(newDelegatee); | |
} | |
@Override | |
public Collection getNullValue(DeserializationContext ctxt) { | |
return Collections.emptyList(); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment