2012-01-21 9 views
5

जावा में, अगर मैं एक उदाहरण के रूप में निम्नलिखित JSON स्ट्रिंग का उपयोग, मैं कैसे की जाँच करेगा अगर वस्तुओं खाली/बातिल कर रहे हैं?जावा में JSON ऑब्जेक्ट खाली है या नहीं, यह जांचने के लिए कैसे करें?

if(!jsonSource.isNull("null_object_1")) {/*null_object_1 is not empty/null*/} 
if(!jsonSource.isNull("null_object_2")) {/*null_object_2 is not empty/null*/} 

लेकिन इन IF बयान अभी भी सच वापसी (जैसे कि वे खाली/बातिल नहीं हैं):

{"null_object_1" : [], "null_object_2" : [null] } 

मैं का उपयोग कर की कोशिश की है।

किसी को भी एक समाधान है?

संपादित करें: "ऑब्जेक्ट" द्वारा, मेरा वास्तव में array था।

उत्तर

10

जाँच करने के लिए उन दो चीजों में से न तो null हैं की जरूरत है; वे सरणी हैं। परिणाम बिल्कुल वही है जो आप उम्मीद करेंगे।

अपने सरणियों से एक रिक्त है, दूसरा एक ही तत्व यह है कि है null शामिल हैं।

आप अगर एक सरणी रिक्त है जानना चाहते हैं, तो आप सरणी प्राप्त करने के लिए, तो इसकी लंबाई की जांच की आवश्यकता होगी। स्पष्ट करने के लिए

JSONObject myJsonObject = 
    new JSONObject("{\"null_object_1\":[],\"null_object_2\":[null]}"); 

if (myJsonObject.getJSONArray("null_object_1").length() == 0) { 
    ... 
} 

संपादित करें: कोई तत्व (खाली) और एक सरणी एक तत्व है कि है कि nullपूरी तरह से अलग चीजें हैं हैं होने एक सरणी। आपके दूसरे सरणी के मामले में यह न तो null और न ही खाली है। जैसा कि मैंने बताया है कि यह एक सरणी है जिसमें एक तत्व है जो null है। आप यदि यह मामला है निर्धारित करने में दिलचस्प हैं, तो आप तो प्रत्येक तत्व का परीक्षण देखने के लिए अगर यह null थे और परिणामों पर तदनुसार अभिनय के माध्यम से यह पुनरावृति सरणी प्राप्त करने की आवश्यकता होगी।

+0

जावा के अशक्त (स्पष्ट करने के लिए धन्यवाद:।। मैं भी पीएचपी (जहां अशक्त के लिए जाँच आमतौर पर दोनों खाली और नल) – 92Jacko

+0

खुशी है कि मैं मदद कर सकता है के लिए चला जाता है के साथ काम करने के लिए इस्तेमाल कर रहा हूँ सच में, IMHO मैं 'null' उपयोग करने से बचें हैं । इस कारण के लिए जावा में 'null' एक विशेष अर्थ है कि' 0' या "खाली" के लिए समानता नहीं है - यह केवल संदर्भ चर वस्तु को सौंपा जा सकता है और पता चलता है कि चर में डाला गया कोई वस्तु संदर्भ है। –

2

इस प्रलेखन के अनुसार JSONObject API, isNull मूल्य के लिए चेक न्यूल, जो आपके मामले में सत्य नहीं है।

यदि 'null_object_1' मान स्ट्रिंग है, तो आप स्ट्रिंग temp = getString("keyName") का उपयोग करें और

!("".equals(temp)); 
संबंधित मुद्दे

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