我在接受采访时被问到你有一个api - 比如说getCustomer。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回具有值的属性。因此,如果客户没有middleName,我们不应该在响应中看到{middleName = null}。我们怎么做到这一点?
答案 0 :(得分:1)
使用Jackson,您可以通过两种方式从JSON序列化中排除空值:
在全局(适用于所有类)中,在ObjectMapper中设置属性 JsonInclude.Include.NON_NULL ,如ritesh.garg已经建议的那样
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
在单个班级,使用 @JsonInclude(Include.NON_NULL)注释班级,如下所示:
@JsonInclude(Include.NON_NULL)
public class Customer {
}
您可以在此处找到详细说明和代码示例:Jackson: how to exclude null value properties from JSON serialization
答案 1 :(得分:0)
您可以使用消息转换器配置对其进行配置。例如。如果有人使用Jackson Message Converter,可以使用Jackson对象映射器的serialization inclusion property进行设置。
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);