Cómo analizar un JSONArray de JSONObjects en JAVA?

Tengo la siguiente matriz regresó a mi aplicación JAVA Android desde PHP:

Array ( [0] => Array ( [referral_fullname] => Name 1 [referral_balance] => 500 ) [1] => Array ( [referral_fullname] => Name 2 [referral_balance] => 500 ) ); 

En Java, el array anterior se ve así:

 {"0":{"referral_fullname":"Name 1","referral_balance":"500"},"1":{"referral_fullname":"Name 2","referral_balance":"500"}}; 

Para un JSONObject simple que estoy usando:

 JSONTokener tokener = new JSONTokener(result.toString()); JSONObject finalResult = new JSONObject(tokener); referral_fullname = finalResult.getString("referral_fullname"); 

pero para una variedad de objetos que no sé!

5 Solutions collect form web for “Cómo analizar un JSONArray de JSONObjects en JAVA?”

 String str = your Json-> apply to.String(); JSONObject jObject = new JSONObject(str); Map<String,String> map = new HashMap<String,String>(); Iterator iter = jObject.keys(); while(iter.hasNext()){ String key = (String)iter.next(); String value = jObject .getString(key); map.put(key,value); } 

Su sintaxis de Json es incorrecta, JSONArray debe ser como esto:

 ["0":{"referral_fullname":"Name 1","referral_balance":"500"},"1":{"referral_fullname":"Name 2","referral_balance":"500"}]; 

y para analizar un JsonArray que contiene algún JSONObject , pruebe esto:

 //parse the result JSONObject jsonResult = null; JSONArray arrayResult = null; ArrayList<YourObject> listObjects = null; try { arrayResult = new JSONArray(result); if(arrayResult != null) { listObjects = new ArrayList<YourObject>(); int lenght = arrayResult.length(); for(int i=0; i< lenght; i++) { JSONObject obj = arrayResult.getJSONObject(i); YourObject object = new YourObject(obj); listObjects.add(object); } } } catch (JSONException e) { e.printStackTrace(); } 

Y agrega un constructor en tu clase YourObject para convertir tu Json en una instancia:

 public YourObject(JSONObject json) { if (!json.isNull("referral_fullname")) this.referral_fullname = json.optString("referral_fullname", null); if (!json.isNull("referral_balance")) this.referral_balance = json.optString("referral_balance", null); } 

Deberías usar

 JSONArray finalResult = new JSONArray(tokener); 

si puedes. Tu estructura es ahora un objeto con dos campos, 0 y 1, que contiene otro objeto. Usted tiene que obtener una matriz de objeto en lugar de este objeto compuesto si desea iterar fácilmente como

 JSONObject jso; for(int i = finalResult.lenght-1; i >=0; i--){ jso = finalResult.get(i); // jso == {"referral_fullname":"Name 1","referral_balance":"500"} [whatever] } 

Prueba esto………….

 final JSONArray result_array = json.getJSONArray("result"); for (int i = 0; i < result.length(); i++) { JSONObject joObject = result_array.getJSONObject(i); String jName = joObject.get("referral_fullname").toString(); String jbalance = joObject.get("referral_balance").toString(); } 

En primer lugar, hacer un objeto JSON y ver a continuación, en el nivel interno lo que tiene si usted tiene matriz, entonces buscar matriz. Necesitas hacer primero el objeto JSON. Por ejemplo, si resp es una cadena (por ejemplo, como respuesta http)

 JSONObject jsonObject = new JSONObject(resp); 

jsonObject puede contener otros objetos JSON o matriz JSON. Cómo convertir el JSON depende de la respuesta. Si arraykey es una matriz dentro de los objetos JSON, entonces podemos obtener la lista de array de la siguiente manera.

 JSONArray arr = jsonObject.getJSONArray("arraykey"); 

Compruebe la longitud de arr, si es mayor que 0, entonces contiene objetos JSON o matriz JSON dependiendo de los datos. Hay un ejemplo completo con alguna explicación acerca de JSON String a JSON matriz se puede encontrar en http://www.hemelix.com/JSONHandling

  • JSONArray respuesta con Volley para Android
  • Enviar datos al servidor a través de JSON
  • GSON esperaba BEGIN_ARRAY pero era BEGIN_OBJECT
  • ¿Qué hace realmente google-services.json?
  • problema POST android JSONObject a PHP
  • Anónimo Subir objeto de archivo a la API Imgur (JSON) da error de autenticación 401
  • Pruebe la carpeta de recursos con Robolectric y Gradle
  • El análisis de Json con gson devuelve un objeto nulo
  • Objeto de matriz Iterate JSON
  • JSON.stringify en java - android
  • Ejemplo de cómo descargar JSON desde el servidor?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.