2012-03-20 19 views
6

Ho bisogno di accedere a String come tutti i singoli parametri contenuti in un Json complesso.Ottieni stringa da json con nidificazione di oggetti json nid e matrici json annidate con più oggetti json, in Android

ad esempio String people=...; String idPeople=...; ecc

ho cercato di utilizzare i JSONTokeners, come ho cercato per cercare gli domanda simile, e per una semplice JSON non ho problemi, ma non so come ottenere il parametri correttamente da questo:

{"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}] 
    } 
} 

NB i numeri di oggetto che rientri nelle persone di matrice non è sempre 2 ... e maggio contiene 4 o più persone oggetto

risposta

19

Non ho provato. Ma immagino che possa funzionare.

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

Questo mi stava facendo impazzire. Mi sto dilettando in Android dev dopo l'obiettivo-c e non riuscivo a capirlo. Grazie! –

+0

Ci sono risposte per più domande all'interno di questa unica risposta. thanx – Sayka

2

se chiamiamo il jSON si posta myJsonString,

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