2

I was asked in an interview that you have an API - say getCustomer. This API returns details of the customer. But to reduce the size of the REST response, we need to return only the attributes which have value. So if middleName is not there for the customer, we should not see { middleName=null } in the response. How can we do this?

Ihor Patsian
  • 1,288
  • 2
  • 15
  • 25
user3276247
  • 1,046
  • 2
  • 9
  • 24

2 Answers2

1

Using Jackson you can exclude null values from JSON serialization in two ways:

  • Globally (for all classes) by setting the property JsonInclude.Include.NON_NULL in the ObjectMapper, as already suggested by ritesh.garg

    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    
  • At single class level, annotating the class with @JsonInclude(Include.NON_NULL) as follows:

    @JsonInclude(Include.NON_NULL)
    public class Customer {
    
    }
    

Here you can find a detailed explanation and code samples: Jackson: how to exclude null value properties from JSON serialization

Davis Molinari
  • 741
  • 1
  • 5
  • 20
0

You can configure it with your message converter configuration. E.g. in case one is using Jackson Message Converter it can be set using the serialization inclusion property of Jackson Object mapper.

objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
ritesh.garg
  • 3,725
  • 1
  • 15
  • 14