मान = शून्य के साथ मानचित्र प्रविष्टियों को अनदेखा करना


132
Gson gson = new Gson();

Map<String,Object> map = new HashMap<String, Object>();
map.put("a", 1);
map.put("b", null);

System.out.println(gson.toJson(map)); //prints {"a":1}

सभी प्रविष्टियों को शामिल करने के लिए मुझे यह कैसे मिलेगा?

जवाबों:


299

देखिए Gson यूजर गाइड - Null Object Support :

Gson में कार्यान्वित डिफ़ॉल्ट व्यवहार यह है कि अशक्त ऑब्जेक्ट फ़ील्ड्स को अनदेखा कर दिया जाता है। यह अधिक कॉम्पैक्ट आउटपुट प्रारूप के लिए अनुमति देता है; हालाँकि, क्लाइंट को इन क्षेत्रों के लिए एक डिफ़ॉल्ट मान को परिभाषित करना चाहिए क्योंकि JSON प्रारूप वापस अपने जावा फॉर्म में परिवर्तित हो जाता है।

यहां बताया गया है कि आप आउटपुट के लिए Gson उदाहरण को null कैसे कॉन्फ़िगर करेंगे:

Gson gson = new GsonBuilder().serializeNulls().create();

10
खोज के लिए मैनुअल को अधिक अनुकूलित किया जाना चाहिए। जब मैं बहुत कम मात्रा में करतब करता हूं तो मैं सब कुछ नहीं पढ़ता हूं। यह google पर पहला परिणाम था। मेरा मुद्दा तय किया।
मैथिज्स सीजर्स

1
@MathijsSegers कुछ शानदार लाइब्रेरी बिना डॉक्यूमेंटेशन के हैं। उनके स्रोत कोड (जो फिर से बिल्डर पैटर्न और सभी के साथ फिर से है) के माध्यम से जाने में बहुत परेशानी हो रही है।
गुलाबीपंच

13
@MathijsSegers और यह SO और Google की सुंदरता है। मैं "गन्स इग्नोर नाल" को गूगल कर सकता हूं और इस जवाब को मैनुअल खोजने के लिए 3 सेकंड में ढूंढ सकता हूं और इसमें एक जवाब।
joshden

2
कक्षा के अंदर केवल एक NULL फ़ील्ड को कैसे नहीं जोड़ा जाए? क्या कोई एनोटेशन है जिसे मैं आवश्यक फ़ील्ड के ऊपर जोड़ सकता हूं?
सालम अल-बन्ना

यह समाधान उचित लगता है और मुझे उम्मीद है कि यह काम करेगा! लेकिन यह नहीं है! कोई विचार?
अरमान रामेज़ानादेह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.