दिलचस्प पोस्ट
मैं एक पायथन कार्यक्रम के निष्पादन का समय कैसे प्राप्त करूं? लिबसेवीएम में मल्टी-क्लास वर्गीकरण Microsoft Visual Studio के लिए अनुशंसित ऐड-ऑन / प्लगइन्स MongoDB परमाणु "खोज या क्रय": ढूंढें, यदि कोई भी न हो तो सम्मिलित करें, लेकिन अपडेट न करें हाइबरनेट त्रुटि: org.hibernate.NonUniqueObjectException: एक ही पहचानकर्ता मान के साथ एक अलग ऑब्जेक्ट पहले से ही सत्र से जुड़ा था "बिन / रेल: ऐसी कोई फ़ाइल या निर्देशिका नहीं" w / रूबी 2 और हरोको पर 4 रेल पायथन 3 आयात इरर: 'मॉड्यूल' नामक कोई मॉड्यूल 'कॉन्फ़िगरपर्स' मेरी गतिविधि में गृह कुंजी को दबाकर उपयोगकर्ता कैसे पता लगा सकता है? * आर्गोस और ** क्वार्ज? जीआईटी इस पाठ फ़ाइल को बाइनरी फ़ाइल के रूप में क्यों लेती है? SQL स्क्रिप्ट से सीएसवी खोल स्क्रिप्ट का उपयोग करें पाठ से सीएसएस स्ट्राइकथ्रू अलग रंग? पायथन में एमएस वर्ड फाइलों से पाठ निकालने जब एपीके पहली बार स्थापित होता है तो सेवा शुरू करने के लिए Google Chrome स्थानीय लिंक खोल सकता है?

Android में एक JSON ऑब्जेक्ट को पार्स कैसे करें

मुझे JSON ऑब्जेक्ट से मूल्य खींचने में कुछ समस्याएं आ रही हैं I यहाँ मेरा कोड है

try { JSONObject json = new JSONObject(result); JSONObject json2 = json.getJSONObject("results"); test = json2.getString("name"); } catch (JSONException e) { e.printStackTrace(); } 

test को String रूप में घोषित किया जाता है जब कोड चलता है तो यह null दिख रहा है। अगर मैं डीबग मोड में json2 पर होवर करता हूं तो मैं ऑब्जेक्ट के भीतर सभी मान और नाम देख सकता हूँ।

मैंने भी कोशिश की

 test = json2.length(); 

यह test = 0 वापस आया यहां तक ​​कि जब मैं json2 ऑब्जेक्ट पर मंडराना करता हूं तो मैं ऑब्जेक्ट के भीतर मान पढ़ सकता हूं।

यहां एक JSON स्ट्रिंग का उदाहरण है जो मैं उपयोग करूंगा।

 { "caller":"getPoiById", "results": { "indexForPhone":0, "indexForEmail":"NULL", "indexForHomePage":"NULL", "indexForComment":"NULL", "phone":"05137-930 68", "cleanPhone":"0513793068", "internetAccess":"2", "overnightStay":"2", "wasteDisposal":"2", "toilet":"2", "electricity":"2", "cran":"2", "slipway":"2", "camping":"2", "freshWater":"2", "fieldNamesWithValue":["phone"], "fieldNameTranslations": ["Telefon"], "id":"1470", "name":"Marina Rasche Werft GmbH & Co. KG", "latitude":"52.3956107286487", "longitude":"9.56583023071289" } } 

वेब के समाधान से एकत्रित समाधान "Android में एक JSON ऑब्जेक्ट को पार्स कैसे करें"

अंत में मैंने इसे JSONObject.get बजाय JSONObject.get का उपयोग कर हल किया और फिर String test डाला।

 private void saveData(String result) { try { JSONObject json= (JSONObject) new JSONTokener(result).nextValue(); JSONObject json2 = json.getJSONObject("results"); test = (String) json2.get("name"); } catch (JSONException e) { e.printStackTrace(); } } 

http://developer.android.com/reference/org/json/JSONTokener.html पर एक नज़र डालें

यह आपकी समस्या को ठीक कर सकता है

आपके JSON प्रारूप में, यह JSON ऑब्जेक्ट को प्रारंभ नहीं करता है

पसंद :

 { "info" : <!-- this is starting JSON object --> { "caller":"getPoiById", "results": { "indexForPhone":0, "indexForEmail":"NULL", . . } } } 

जेसन से ऊपर JSON ऑब्जेक्ट के रूप में info शुरू होता है तो निष्पादित करते समय:

 JSONObject json = new JSONObject(result); // create JSON obj from string JSONObject json2 = json.getJSONObject("info"); // this will return correct 

अब, हम result फ़ील्ड का उपयोग कर सकते हैं:

 JSONObject jsonResult = json2.getJSONObject("results"); test = json2.getString("name"); // returns "Marina Rasche Werft GmbH & Co. KG" 

मुझे लगता है कि यह अनुपलब्ध था और इसलिए समस्या का हल किया गया था, जबकि हम JSONTokener इस्तेमाल JSONTokener जैसे तुम्हारा जवाब।

आपका जवाब बहुत ठीक है बस मुझे लगता है कि मैं इस जानकारी को जोड़ने तो मैं जवाब दिया

धन्यवाद

 JSONArray jsonArray = new JSONArray(yourJsonString); for (int i = 0; i < jsonArray.length(); i++) { JSONObject obj1 = jsonArray.getJSONObject(i); JSONArray results = patient.getJSONArray("results"); String indexForPhone = patientProfile.getJSONObject(0).getString("indexForPhone")); } 

JSONArray में बदलें, फिर JSONObject में कनवर्ट करें।