IT袋

当前位置:主页 > 经验教程 > 建站编程 >

接口返回值如何去掉空字段

接口返回值如何去掉空字段? 如何在接口返回值中去除空字段?

时间:2024-01-09 15:56:58 来源:IT袋 作者:马勇
导读:接口返回值如何去掉空字段,你是不是想知道接口返回值如何去掉空字段的IT小经验,接下来一起来看看吧。 在开发过程中,对外接口有如下需求: 系统提供了一个API接口,对方希望他的接口返回值做

接口返回值如何去掉空字段

你是不是想知道接口返回值如何去掉空字段的IT小经验,接下来一起来看看吧。

在开发过程中,对外接口有如下需求:系统提供了一个API接口,对方希望他的接口返回值做一下处理,只返回非空的数据,把空字段过滤一下,我们需要如何做?

接口返回值如何去掉空字段

比如:

{
    "success": true,
    "code": 10000,
    "message": "操作成功!",
    "data": {
        "id": null,
        "title": "springboot葵花宝典",
        "description": "微信公众号",
        "published": null
    }
}

上面JSON数据published值为null,那么在返回前端的时候我们需要不返回published字段。

这是一种比较常见的需求,我把我常用的处理办法进行总结,供大家参考。

提供的API接口,在返回json数据给用户之前,需要将实体对象转换成json数据。

这就需要使用json转换工具,在Spring框架中默认的JSON序列化框架是Jackson,这是最常用的Json处理框架,当然除此之外可能小伙伴们也可能会使用fastjson,我们都会进行介绍

1. Jackson去空值

1.1. 局部配置去空值

Jackson 框架中,给我们提供@JsonInclude注解,既可以使用在类上面,也可以使用在字段上面,该注解的value值使用Include.NON_NULL,标记为非空。

  • @JsonInclude注解使用在具体字段
@Data
public class Tutorial implements Serializable {
    private Long id;
    private String title;
    private String description;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer published;
    private static final long serialVersionUID = 1L;
}

Jackson转换成json数据的时候,如果发现published为空值,就会直接过滤

  • @JsonInclude注解使用在具体类
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class Tutorial implements Serializable {
  // 省略...
}

Jackson转换成json数据的时候,如果发现Tutorial类中只要有字段存在空值,就会直接过滤字段

思考:可能有很多接口有这样的需求,难道我们需要一个个在类上添加该注解?

肯定不是的,我们可以进行Jackson全局配置,统一过滤空字段

1.2. 全局配置去空值

Jackson在Spring Boot中的配置通常较为简单,因为Spring Boot默认使用MappingJackson2HttpMessageConverter作为JSON消息转换器,而不需要特定的配置类。

只需要配置ObjectMapper,可以轻松地实现实现在接口返回值中去掉空字段

相关阅读