Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Jackson 라이브러리를 사용하여 null 및 빈 필드를 무시하는 방법은 무엇입니까?


잭슨 Java용 라이브러리이며 매우 강력한 데이터 바인딩 기능을 가지고 있으며 맞춤 Java 개체를 JSON으로 직렬화하는 프레임워크를 제공합니다. JSON을 다시 Java 객체로 역직렬화 . Jackson 라이브러리는 @JsonInclude 주석을 제공합니다. 직렬화 중 해당 값을 기반으로 클래스 전체 또는 개별 필드의 직렬화를 제어합니다.

@JsonInclude 주석 2개 미만의 값을 포함합니다.

  • 포함.NON_NULL :null 값이 아닌 속성만 JSON에 포함됨을 나타냅니다.
  • 포함.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);
   }
}
// Employee class
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
}