2011-09-02 11 views
19

यह जांचने के लिए कि कोई तत्व JSONArray या JSONObject है या नहीं। मैं जाँच करने के लिए,JSON जावा चेक तत्व एक JSONArray या JSONObject

if(jsonObject.getJSONObject("Category").getClass().isArray()) { 

} else { 

} 

इस मामले में अगर तत्व 'श्रेणी' JSONObject तो यह ठीक से काम लेकिन अगर यह एक सरणी में शामिल है तो यह अपवाद है कोड लिखा है: JSONArray JSONObject में परिवर्तित नहीं किया जा सकता है। कृपया मदद करे। धन्यवाद।

+0

http://stackoverflow.com/a/13100642/1318946 इसे जांचें .... आपके लिए उपयोगी हो सकता है .. –

उत्तर

25

हां, ऐसा इसलिए है क्योंकि getJSONObject("category")String को JSONObject में कनवर्ट करने का प्रयास करेगा जो JSONException फेंक देगा। यदि उस वस्तु का उपयोग करके एक JSONObject है

की जांच:: आप निम्न करना चाहिए

JSONObject category=jsonObject.optJSONObject("Category"); 

जो एक JSONObject या null वापस आ जाएगी अगर category वस्तु एक json वस्तु नहीं है। तो फिर तुम निम्न कार्य करें:

JSONArray categories; 
    if(category == null) 
     categories=jsonObject.optJSONArray("Category"); 

जो आपके JSONArray या नल वापस आ जाएगी, तो यह एक वैध JSONArray नहीं है।

+0

ग्रेट ओविडिउ। धन्यवाद। – Neetesh

+0

आपका स्वागत है! –

+0

कोई भी जो मैं सोच सकता हूं ... –

0

आप जो परिणाम प्राप्त करते हैं, उसे देखने के लिए आप instanceof का उपयोग कर सकते हैं। फिर आप इसे अपनी इच्छानुसार संभाल सकते हैं।

0
  if (element instanceof JSONObject) { 

       Map<String, Object> map = json2Java.getMap(element 
         .toString()); 
       if (logger.isDebugEnabled()) { 
        logger.debug("Key=" + key + " JSONObject, Values=" 
          + element); 
       } 
       for (Entry<String, Object> entry : map.entrySet()) { 
        if (logger.isDebugEnabled()) { 
         logger.debug(entry.getKey() + "/" 
           + entry.getValue()); 
        } 
        jsonMap.put(entry.getKey(), entry.getValue()); 
       } 
      } 
16

भले ही आप अपने जवाब मिल गया है, लेकिन अभी भी यह अन्य उपयोगकर्ताओं की मदद कर सकते हैं ...

if (Law.get("LawSet") instanceof JSONObject) 
{ 
    JSONObject Lawset = Law.getJSONObject("LawSet");       
} 
else if (Law.get("LawSet") instanceof JSONArray) 
{ 
    JSONArray Lawset = Law.getJSONArray("LawSet"); 
} 

यहाँ Law अन्य JSONObject और LawSet वह कुंजी है जिसे आप JSONObject or JSONArray के रूप में ढूंढना चाहते हैं।

+0

धन्यवाद पूरी तरह से मुझे वस्तु और सरणी के बीच सत्यापित किया जाना चाहिए .. तो समाधान मिला !!!!! :) –

+0

वाह ... मेरा दिन बचाया ... धन्यवाद @ वीकास। –

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