कनवर्ट करने के लिए जैक्सन का उपयोग करते समय एक वैकल्पिक संपत्ति को अनदेखा किया जा सकता है, मैं जैक्सन 1.9.2 (org.codehaus.jackson) का उपयोग जावा ऑब्जेक्ट से जेएसओएन निर्माण से मेल खाने के लिए कर रहा हूं। यहां मेरा जावा ऑब्जेक्ट है:जावा ऑब्जेक्ट
Class ColorLight {
String type;
boolean isOn;
String value;
public String getType(){
return type;
}
public setType(String type) {
this.type = type;
}
public boolean getIsOn(){
return isOn;
}
public setIsOn(boolean isOn) {
this.isOn = isOn;
}
public String getValue(){
return value;
}
public setValue(String value) {
this.value = value;
}
}
यदि मैंने निम्नलिखित रूपांतरण किया है, तो मुझे परिणाम मिल जाएगा।
ColorLight light = new ColorLight();
light.setType("red");
light.setIsOn("true");
light.setValue("255");
objectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString();
jsonString जैसा होगा:
{"type":"red","isOn":"true", "value":"255"}
लेकिन कभी कभी मैं ison संपत्ति
ColorLight light = new ColorLight();
light.setType("red");
light.setValue("255");
का मूल्य नहीं है लेकिन jsonString अब भी है की तरह है:
{"type":"red","isOn":"false", "value":"255"}
जहां "isOn: false" defa है जावा बूलियन प्रकार का अंतिम मूल्य जो मैं नहीं चाहता कि यह वहां हो। इस तरह के अंतिम जेसन निर्माण में IOn संपत्ति को मैं कैसे हटा सकता हूं?
{"type":"red","value":"255"}
आपको बहुत बहुत धन्यवाद, बूलियन आवरण वर्ग हल
यहाँ एक उदाहरण है। @JsonInclude (Include.NON_NULL) मेरे जैक्सन संस्करण के लिए काम नहीं किया। आखिरकार मैंने @ जेसन सेरियललाइज का उपयोग किया (शामिल = जेसनएसरियलइज.इन्यूलेशन.NON_NULL) – taoxiaopang