Hanya untuk memperluas jawaban lain - jika Anda perlu mengontrol kelalaian nilai nol pada basis per-bidang, beri anotasi bidang yang dimaksud (atau anotasi 'pengambil' bidang tersebut).
contoh - di sini hanya fieldOne
akan dinonaktifkan dari json jika itu nol. fieldTwo
akan selalu disertakan terlepas dari apakah itu nol.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Untuk menghilangkan semua nilai nol di kelas sebagai default, beri catatan kelas. Anotasi per bidang / pengambil masih dapat digunakan untuk menimpa default ini jika perlu.
contoh - di sini fieldOne
dan fieldTwo
akan dihapus dari json jika masing-masing adalah nol, karena ini adalah default yang ditetapkan oleh anotasi kelas. fieldThree
Namun akan menimpa default dan akan selalu dimasukkan, karena penjelasan di lapangan.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
MEMPERBARUI
Di atas adalah untuk Jackson 2 . Untuk versi Jackson sebelumnya, Anda perlu menggunakan:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
dari pada
@JsonInclude(JsonInclude.Include.NON_NULL)
Jika pembaruan ini bermanfaat, harap jawab jawaban ZiglioUK di bawah ini, ini menunjukkan anotasi Jackson 2 yang baru jauh sebelum saya memperbarui jawaban saya untuk menggunakannya!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; entah bagaimana anotasi Anda tidak tersedia.