2012-03-20 6 views
6

में जेएसन से नेस्टेड जेसन ऑब्जेक्ट और नेस्टेड जेसन एरे के साथ जेसन से स्ट्रिंग प्राप्त करें, मुझे एक जटिल जेसन में निहित सभी एकल पैरामीटर स्ट्रिंग के रूप में उपयोग करने की आवश्यकता है।एंड्रॉइड

उदाहरण String people=...; String idPeople=...; आदि के लिए

मैं, JSONTokeners उपयोग करने के लिए कोशिश की है के रूप में मैं इसी तरह के सवाल के लिए खोज करने की कोशिश की है, और सरल json के लिए मैं इस समस्या नहीं है, लेकिन मैं प्राप्त करने के लिए पता नहीं कैसे इस से पैरामीटर सही ढंग से:

{"id":1,"error":null,"result": 
    {"nPeople":2, 
    "people":[ 
      {"namePeople":"Inca", 
      "power":"1235", 
      "location":"asdfghjja", 
      "idPeople":189, 
      "mainItems":"brownGem", 
      "verified":false, 
      "description":"Lorem impsum bla bla", 
      "linkAvatar":"avatar_12.jpg", 
      "longitude":16.2434263, 
      "latitude":89.355118}, 

      {"namePeople":"Maya", 
      "power":"1235", 
      "location":"hcjkjhljhl", 
      "idPeople":119, 
      "mainItems":"greenstone", 
      "verified":false, 
      "description":"Lorem impsum bla bla", 
      "linkAvatar":"avatar_6.jpg", 
      "longitude":16.2434263, 
      "latitude":89.3551185}] 
    } 
} 

नायब सरणी लोगों में वस्तु की संख्या हमेशा 2 नहीं है ... और हो सकती है 4 या अधिक लोगों

उत्तर

19

मैंने कोशिश नहीं की है। लेकिन मुझे लगता है कि यह काम कर सकता है।

JSONObject obj = new JSONObject(jsonString); 
    String id = obj.getString("id"); 
    String error = obj.getString("error"); 
    JSONObject result = obj.getJSONObject("result"); 
    int nPeople = result.getInt("nPeople"); 
    JSONArray people = result.getJSONArray("people"); 
    for(int i = 0 ; i < people.length() ; i++){ 
     JSONObject p = (JSONObject)people.get(i); 
     String namePeople = p.getString("namePeople"); 
     ... 
    } 
+0

यह मुझे पागल कर रहा था। मैं उद्देश्य-सी के बाद एंड्रॉइड देव में डबलिंग कर रहा हूं और इसे समझ नहीं पाया। धन्यवाद! –

+0

इस एक उत्तर के भीतर और अधिक प्रश्नों के उत्तर हैं। thanx – Sayka

2

आपत्ति करता है, तो हम आपको myJsonString पोस्ट json फोन,

JSonObject obj = new JSonObject(myJsonString); 
JSonObject result = obj.getJSONObject("result"); 
JSonArray people = result.getJSONArray("people"); 
int numOfPeople = result.getInt("nPeople");