2012-02-21 10 views
6

estoy tratando de obtener una lista de números disponibles desde el siguiente objeto JSON, utilizando la clase de org.json¿Cómo extraigo la matriz de cadenas de este objeto json?

{ 
     "response":true, 
     "state":1, 
     "data": 
     { 
      "CALLERID":"81101099", 
      "numbers": 
       [ 
         "21344111","21772917", 
         "28511113","29274472", 
         "29843999","29845591", 
         "30870001","30870089", 
         "30870090","30870091" 
       ] 
     } 
    } 

Mis primeros pasos fueron, después de recibir el objeto JSON del servicio web:

jsonObj = new JSONObject(response); 
jsonData = jsonObj.optJSONObject("data"); 

Ahora, ¿cómo guardo el conjunto de números de cadena?

Respuesta

24

uso:

jsonObj = new JSONObject(response); 
jsonData = jsonObj.optJSONObject("data"); 
JSONArray arrJson = jsonData.getJSONArray("numbers"); 
String[] arr = new String[arrJson.length()]; 
for(int i = 0; i < arrJson.length(); i++) 
    arr[i] = arrJson.getString(i); 
+1

+1 para la exacta ejemplo. Spoon feed :) –

+1

Excepto por el hecho de que no hay ningún método en JSONArray llamado getLength (¿quisiste decir length()?) Esto fue genial - gracias :) – CodePrimate

+0

He editado la respuesta. – jeet

0

Suponiendo que usted está tratando de conseguir que en un bloque de Javascript, intentar algo como esto

var = arrNumber jsonData.numbers;

1

es necesario utilizar JSONArray para extraer datos de una matriz

JSONObject jObj= new JSONObject(your_json_response); 
JSONArray array = jObj.getJSONArray("data"); 
0

Mi código es para obtener "datos":

public void jsonParserArray(String json) { 

     String [] resultsNumbers = new String[100]; 

     try { 
      JSONObject jsonObjectGetData = new JSONObject(json); 
      JSONObject jsonObjectGetNumbers = jsonObjectGetData.optJSONObject("results"); 
      JSONArray jsonArray = jsonObjectGetNumbers.getJSONArray("numbers"); 
      for (int i = 0; i < jsonArray.length(); i++) { 
       resultsNumbers[i] = jsonArray.getString(i); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
      Log.e(LOG_TAG, e.toString()); 
     } 
    } 
Cuestiones relacionadas