से खाली Arrays को बाहर निकालें मैं Jackson ObjectMapper का उपयोग कर जावा ऑब्जेक्ट पेड़ से JSON बना रहा हूं। मेरी कुछ जावा ऑब्जेक्ट्स संग्रह हैं और कभी-कभी वे खाली हो सकती हैं। तो अगर वे खाली हैं कि ऑब्जेक्टमैपर मुझे उत्पन्न करता है: "attributes": [],
और मैं अपने परिणाम से उन प्रकार के खाली JSON arrays को बाहर करना चाहता हूं। मेरे वर्तमान ObjectMapper config:जैक्सन ऑब्जेक्टमैपर
SerializationConfig config = objectMapper.getSerializationConfig();
config.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
config.set(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
this post से मैं पढ़ा है कि मैं का उपयोग कर सकते हैं:
config.setSerializationInclusion(JsonSerialize.Inclusion.NON_DEFAULT);
लेकिन वह मुझे एक त्रुटि पैदा कर रहा है:
Caused by: java.lang.IllegalArgumentException: Class com.mycomp.assessments.evaluation.EvaluationImpl$1 has no default constructor; can not instantiate default bean value to support 'properties=JsonSerialize.Inclusion.NON_DEFAULT' annotation.
तो मैं कैसे बचा जा सकता है मेरे परिणाम में प्रकट होने के लिए उन खाली सरणी?
के लिए मैं जैक्सन उपयोग कर रहा हूँ: 1.8.5, लेकिन ऐसी विकल्प नहीं है: JsonSerialize। Includsion.NON_EMPTY। केवल वही है: हमेशा, NON_NULL, NON_DEFAULT –
एक प्रकार (इंकुडियन के बजाय समावेशन) को ठीक किया गया है, लेकिन इसका उपयोग करने के लिए आपको कम से कम जैक्सन 1.9 की आवश्यकता है, मुझे डर है। – jgm
धन्यवाद, मैंने जैक्सन के संस्करण को अपडेट किया है और अब ठीक है :) –