2010-12-10 25 views
31

मुझे Android में मानचित्र के लिए न्यूनतम मान के साथ पार्स करने का प्रयास करते समय समस्या है।स्ट्रिंग और मान के साथ पार्स JSON ऑब्जेक्ट केवल

वहाँ अधिक जानकारी पूर्व के साथ कुछ नमूना JSON प्रारूप:

[{id:"1", name:"sql"},{id:"2",name:"android"},{id:"3",name:"mvc"}] 

यह है कि उदाहरण के सबसे अधिक उपयोग करने के लिए आम और बस getString("id") या getValue("name") का उपयोग का उपयोग करने के लिए आसान।

लेकिन मैं इस JSON प्रारूप का उपयोग करके मैप करने के लिए कैसे पार्स कर सकता हूं, केवल लूपिंग का उपयोग करके जावा मानचित्र संग्रह में केवल स्ट्रिंग और मान न्यूनतम प्रारूप के साथ। और क्योंकि स्ट्रिंग जेसन हमेशा एक दूसरे के साथ अलग होगा। पूर्व:

{"1":"sql", "2":"android", "3":"mvc"} 

धन्यवाद

उत्तर

76

आप के रूप में नीचे दिखाए गए उदाहरण उन पर पाश सभी कुंजियों की एक सूची, और उन्हें अपने नक्शे में जोड़ने की जरूरत:

String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; 
    JSONObject jObject = new JSONObject(s); 
    JSONObject menu = jObject.getJSONObject("menu"); 

    Map<String,String> map = new HashMap<String,String>(); 
    Iterator iter = menu.keys(); 
    while(iter.hasNext()){ 
     String key = (String)iter.next(); 
     String value = menu.getString(key); 
     map.put(key,value); 
    } 
+0

सरल लेकिन बहुत ही कुशल, धन्यवाद। – mass

+1

'JSONObject' के लिए आयात क्या है? – 8bitjunkie

+0

@ 8bitjunkie, यह org.json है: जेसन – chuckskull

9

मेरे छद्म कोड उदाहरण निम्नानुसार होगा:

JSONArray jsonArray = "[{id:\"1\", name:\"sql\"},{id:\"2\",name:\"android\"},{id:\"3\",name:\"mvc\"}]"; 
JSON newJson = new JSON(); 

for (each json in jsonArray) { 
    String id = json.get("id"); 
    String name = json.get("name"); 

    newJson.put(id, name); 
} 

return newJson; 
+1

डाउनवोट क्यों? क्या आप नहीं देख सकते मैंने कहा ** छद्म कोड **? –

+0

शायद क्योंकि वे एक जेसन ऑब्जेक्ट के बारे में पूछ रहे हैं जो जेसन सरणी नहीं है। – PixMach

+0

@PixMach स्ट्रिंग ओपी प्रदान किया गया एक JSON सरणी है। यह '' 'के साथ शुरू होता है और' 'के साथ समाप्त होता है '। –

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