बस अन्य उत्तरों पर विस्तार करने के लिए - यदि आपको प्रति-फ़ील्ड आधार पर शून्य मानों की चूक को नियंत्रित करने की आवश्यकता है, तो प्रश्न में फ़ील्ड को एनोटेट करें (या वैकल्पिक रूप से फ़ील्ड के 'गेट्टर' को एनोटेट करें)।
उदाहरण - यहाँ केवल fieldOne
जुबान से ommitted किया जाएगा यदि यह अशक्त है। fieldTwo
हमेशा की परवाह किए बिना शामिल किया जाएगा अगर यह शून्य है।
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
एक डिफ़ॉल्ट के रूप में कक्षा में सभी अशक्त मूल्यों को छोड़ने के लिए, वर्ग को एनोटेट करें। यदि आवश्यक हो तो इस डिफ़ॉल्ट को ओवरराइड करने के लिए प्रति-फ़ील्ड / गेट्टर एनोटेशन का उपयोग किया जा सकता है।
उदाहरण - यहाँ fieldOne
और fieldTwo
अगर वे क्रमशः अशक्त हैं, तो उन्हें json से हटा दिया जाएगा, क्योंकि यह वर्ग एनोटेशन द्वारा निर्धारित डिफ़ॉल्ट है। fieldThree
हालाँकि, डिफ़ॉल्ट को ओवरराइड करेगा और फ़ील्ड में एनोटेशन के कारण हमेशा शामिल रहेगा।
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
अपडेट करें
ऊपर जैक्सन 2 के लिए है । जैक्सन के पुराने संस्करणों के लिए आपको उपयोग करने की आवश्यकता है:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
के बजाय
@JsonInclude(JsonInclude.Include.NON_NULL)
यदि यह अपडेट उपयोगी है, तो कृपया नीचे दिए गए ZiglioUK के उत्तर को बढ़ाएं, इसने नए जैक्सन 2 एनोटेशन को इंगित किया, इससे पहले कि मैंने इसका उपयोग करने के लिए अपना उत्तर अपडेट किया!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; किसी तरह आपका एनोटेशन उपलब्ध नहीं था।