【问题标题】:REST - How in the response we return only fields which we require? [duplicate]REST - 我们如何在响应中只返回我们需要的字段? [复制]
【发布时间】:2016-10-16 21:59:25
【问题描述】:

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

【问题讨论】:

    标签: rest jersey resteasy restful-authentication


    【解决方案1】:

    您可以使用您的消息转换器配置对其进行配置。例如。如果使用 Jackson Message Converter,可以使用 Jackson Object 映射器的serialization inclusion property 进行设置。

    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    

    【讨论】:

      【解决方案2】:

      使用 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

      【讨论】:

        猜你喜欢
        • 2019-06-14
        • 2020-03-23
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        • 1970-01-01
        相关资源
        最近更新 更多