เดอะ แจ็คสัน เป็นไลบรารีสำหรับ 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
}