เพียงเพื่อขยายคำตอบอื่น ๆ - หากคุณต้องการควบคุมการละเว้นค่า Null บนพื้นฐานต่อฟิลด์ให้ใส่คำอธิบายประกอบในคำถาม (หรือเพิ่มคำอธิบายประกอบของ 'getter')
ตัวอย่าง -ที่นี่เท่านั้นfieldOne
จะถูก ommitted จาก json ถ้ามันเป็นโมฆะ fieldTwo
จะรวมอยู่เสมอไม่ว่าจะเป็นโมฆะหรือไม่ก็ตาม
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
ในการละเว้นค่า Null ทั้งหมดในคลาสเป็นค่าเริ่มต้นให้ใส่คำอธิบายประกอบคลาส คำอธิบายประกอบแบบต่อฟิลด์ / ทะเยอทะยานยังสามารถใช้เพื่อแทนที่ค่าเริ่มต้นนี้หากจำเป็น
ตัวอย่าง -ที่นี่fieldOne
และfieldTwo
จะถูก ommitted จาก json หากพวกเขาเป็นโมฆะตามลำดับเพราะนี่คือชุดเริ่มต้นโดยคำอธิบายประกอบในชั้นเรียน fieldThree
อย่างไรก็ตามจะแทนที่ค่าเริ่มต้นและจะรวมอยู่ด้วยเสมอเนื่องจากมีคำอธิบายประกอบในฟิลด์
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
UPDATE
ข้างต้นเป็นสำหรับแจ็คสัน 2 สำหรับแจ็คสันรุ่นก่อนหน้าคุณต้องใช้:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
แทน
@JsonInclude(JsonInclude.Include.NON_NULL)
หากการอัปเดตนี้มีประโยชน์โปรด upvote คำตอบของ ZiglioUK ด้านล่างมันชี้ให้เห็นคำอธิบายประกอบ Jackson 2 ที่ใหม่กว่าก่อนที่ฉันจะอัปเดตคำตอบเพื่อใช้!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
; ยังไม่มีคำอธิบายประกอบของคุณ