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é!

 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

  • ¿Cómo recuperar datos de la base de datos de firebase que está teniendo matriz anidada y estructura de objetos?
  • Cómo analizar correctamente la API de Reddit en Android
  • Pasar JSONArray a PHP desde Android
  • Cómo cargar la imagen en base64 en el servidor
  • No se puede analizar la matriz Json con Gson
  • Objeto JSON de Android
  • JSON `date (...)` a `java.Util.Date` usando` org.json`
  • ¿Cómo utilizar Gson para serializar objetos en android?
  • JSONObject en JSONObject
  • Llenar cada fragmento en ViewPager con otro objeto JSON sin cargar de nuevo
  • Android json analizar y almacenar en la base de datos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.