2012-03-20 20 views
6

Necesito acceder como cadena a todos los parámetros individuales contenidos en un Json complejo.Obtiene String de json con objeto json anidado y matrices json anidadas con objeto json múltiple, en Android

por ejemplo String people=...; String idPeople=...; etc.

He intentado utilizar las JSONTokeners, como he tratado de buscar pregunta similar y para JSON sencilla que no tiene problema, pero no sé cómo obtener el parámetros correctamente de esta:

{"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 los números de objeto en el pueblo de matriz no siempre es 2 ... y que contiene 4 o más personas se oponen

Respuesta

19

No lo he intentado. Pero supongo que puede funcionar.

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

Esto me estaba volviendo loco. Estoy incursionando en el desarrollo de Android después del objetivo-c y no pude resolver esto. ¡Gracias! –

+0

Hay respuestas para más preguntas dentro de esta única respuesta. Gracias – Sayka

2

si llamamos el JSON que publique myJsonString,

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