REST—如何在响应中只返回所需的字段?
在一次采访中,我被问到你有一个API,比如说REST—如何在响应中只返回所需的字段?,rest,jersey,resteasy,restful-authentication,Rest,Jersey,Resteasy,Restful Authentication,在一次采访中,我被问到你有一个API,比如说getCustomer。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回具有值的属性。因此,如果客户没有middleName,我们不应该在响应中看到{middleName=null}。我们如何才能做到这一点?您可以使用消息转换器配置进行配置。例如,如果使用Jackson消息转换器,可以使用Jackson对象映射器的设置 objectMapper.setSerializationInclusion(JsonInclude.Inc
getCustomer
。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回具有值的属性。因此,如果客户没有middleName
,我们不应该在响应中看到{middleName=null}
。我们如何才能做到这一点?您可以使用消息转换器配置进行配置。例如,如果使用Jackson消息转换器,可以使用Jackson对象映射器的设置
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
使用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 { }