เดอะ แจ็คสัน เป็นไลบรารีสำหรับ Java และมีความสามารถในการผูกข้อมูลที่มีประสิทธิภาพมากและจัดเตรียมกรอบงานเพื่อจัดลำดับออบเจ็กต์ Java ที่กำหนดเองให้กับ JSON และ ดีซีเรียลไลซ์ JSON กลับไปที่วัตถุ Java . ห้องสมุด Jackson มี @JsonInclude คำอธิบายประกอบ ที่ควบคุมการซีเรียลไลซ์เซชันของคลาสโดยรวมหรือแต่ละฟิลด์ตามค่าของคลาสในระหว่างการทำให้เป็นอนุกรม
คำอธิบายประกอบ @JsonInclude มีค่าต่ำกว่าสองค่า
- รวม.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 }