Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save idserda/f9b6de130631575108138f1cd0aff879 to your computer and use it in GitHub Desktop.
Save idserda/f9b6de130631575108138f1cd0aff879 to your computer and use it in GitHub Desktop.
# 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