2012-11-28 10 views
55

जावा में org.json.JSONObject के साथ शून्य करने के लिए आप कैसे मान सेट करते हैं? मैं निश्चित रूप से पढ़ सकते हैं अगर एक मूल्य IsNull का उपयोग करके रिक्त है - लेकिन ऐसा लगता है जैसे जब मैं अशक्त शब्दों में कहें, यह सिर्फ मुझे ध्यान नहीं देता:जावा में org.json.JSONObject के साथ शून्य करने के लिए आप कैसे मान सेट करते हैं?

JSONObject o = new JSONObject(); 
o.put("key",null); 
o.isNull("key"); // returns true, buuuut... 
o.has("key"); // returns false 
o.isNull("somethingIHaventSetAtAll"); // also returns true, unfortunately 
+6

यदि आप शून्य डालते हैं तो यह कुंजी को हटा देता है: http://www.json.org/javadoc/org/json/JSONObject.html#put(java.lang.String,%20java.lang.Object) –

उत्तर

136

कोशिश null के बजाय JSONObject.NULL स्थापित करने के लिए:

एक प्रहरी मूल्य को बिना किसी मूल्य वाले नाम को स्पष्ट रूप से परिभाषित करने के लिए उपयोग किया जाता है। अशक्त के विपरीत, इस मूल्य के साथ नाम:

  • नाम में दिखाई देते हैं() सरणी
  • कुंजी() इटरेटर में दिखाई है के लिए
  • वापसी सच (स्ट्रिंग)
  • पर फेंक नहीं है प्राप्त करें (स्ट्रिंग)
  • एन्कोडेड JSON स्ट्रिंग में शामिल हैं।

यह मान शून्य की तुलना में सत्य लौटकर बराबर (ऑब्जेक्ट) के सामान्य अनुबंध का उल्लंघन करता है। इसकी ToString() विधि "शून्य" देता है।

+1

एक आकर्षण की तरह काम करता है! धन्यवाद! –

+0

क्या आप उदाहरण प्रदान कर सकते हैं कि यह अनुबंध का उल्लंघन क्यों करेगा? – voipp

+0

@voipp यह नियम ('object.equals' से) का उल्लंघन करता है: *" किसी भी गैर-शून्य संदर्भ मान 'x' के लिए,' x.equals (शून्य) 'झूठी वापसी करनी चाहिए "*। –

संबंधित मुद्दे

 संबंधित मुद्दे