Chỉ để mở rộng các câu trả lời khác - nếu bạn cần kiểm soát việc bỏ qua các giá trị null trên cơ sở từng trường, hãy chú thích trường đang đề cập (hoặc thay vào đó là chú thích 'getter' của trường).
ví dụ - ở đây fieldOne
sẽ chỉ được thông báo từ json nếu nó là null. fieldTwo
sẽ luôn được bao gồm bất kể nó là null.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Để bỏ qua tất cả các giá trị null trong lớp làm mặc định, chú thích lớp. Chú thích trên mỗi trường / getter vẫn có thể được sử dụng để ghi đè mặc định này nếu cần.
ví dụ - ở đây fieldOne
và fieldTwo
sẽ được thông báo từ json nếu chúng là null, vì đây là mặc định được đặt bởi chú thích lớp. fieldThree
tuy nhiên sẽ ghi đè mặc định và sẽ luôn được đưa vào, vì chú thích trên trường.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
CẬP NHẬT
Trên đây là cho Jackson 2 . Đối với các phiên bản trước của Jackson, bạn cần sử dụng:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
thay vì
@JsonInclude(JsonInclude.Include.NON_NULL)
Nếu bản cập nhật này hữu ích, vui lòng nâng cấp câu trả lời của ZiglioUK bên dưới, nó chỉ ra chú thích Jackson 2 mới hơn trước khi tôi cập nhật câu trả lời của mình để sử dụng nó!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
; bằng cách nào đó chú thích của bạn không có sẵn