REST - 如何在响应中返回我们需要的字段?

时间:2016-06-15 16:49:28

标签: rest jersey resteasy restful-authentication restful-architecture

我在接受采访时被问到你有一个api - 比如说getCustomer。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回具有值的属性。因此,如果客户没有middleName,我们不应该在响应中看到{middleName = null}。我们怎么做到这一点?

2 个答案:

答案 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);