如何使用Java中的Jackson库忽略空字段和空字段?

在杰克逊 是一个Java库,它具有非常强大的数据绑定功能,并提供了一个框架序列化自定义的Java对象,JSON和反序列化JSON回Java对象。Jackson库提供@JsonInclude批注,该批注根据序列化期间类的值来控制整个类或其单个字段的序列化。

该@JsonInclude注释包含以下两个值

  • Include.NON_NULL:指示仅具有非空值的属性将包含在JSON中。

  • Include.NON_EMPTY:指示仅非空属性将包含在JSON中

示例

import com.fasterxml.jackson.annotation.*;

import com.fasterxml.jackson.annotation.JsonInclude.Include;

import com.fasterxml.jackson.core.*;

import com.fasterxml.jackson.databind.*;

public class IgnoreNullAndEmptyFieldTest {

   public static void main(String[] args) throws JsonProcessingException {

      ObjectMapper mapper = new ObjectMapper();

      mapper.enable(SerializationFeature.INDENT_OUTPUT);

      Employee employee = new Employee(115, null, ""); // passing null and empty fields

      String result = mapper.writeValueAsString(employee);

      System.out.println(result);

   }

}

//员工阶层

class Employee {

   private int id;

   @JsonInclude(Include.NON_NULL)

   private String firstName;

   @JsonInclude(Include.NON_EMPTY)   private String lastName;

   public Employee(int id, String firstName, String lastName) {

      super();

      this.id = id;

      this.firstName = firstName;

      this.lastName = lastName;

   }

   public int getId() {

      return id;

   }

   public void setId(int id) {

      this.id = id;

   }

   public String getFirstName() {

      return firstName;

   }

   public void setFirstName(String firstName) {

      this.firstName = firstName;

   }

   public String getLastName() {

   return lastName;

   }

   public void setLastName(String lastName) {

      this.lastName = lastName;

   }

}

输出结果

{

 "id" : 115

}

以上是 如何使用Java中的Jackson库忽略空字段和空字段? 的全部内容, 来源链接: utcz.com/z/338404.html

回到顶部