Obtener JSONObject por ID desde otro JSONObject – Android

Tengo un pequeño problema con el análisis de JSON String que obtengo de un servidor web. Así que mi JSON se parece a esto:

{ .......... "statistics":{ "660":{ "param_id":660, "cat_id":2, "param_title":"Number", "param_value":"26", "value_type":"singleline", "elem_order":"1"} , "662":{ "param_id":662, "cat_id":2, "param_title":"Name", "param_value":"Dani", "value_type":"singleline", "elem_order":"2" } // --||-- } } 

Así que obtener un JSONObject estadística y quiero obtener JSONObjects de las statistics , pero el problema es que su nombre es diferente json.getJSONObject("660"); no json.getJSONObject("660"); hacer json.getJSONObject("660"); . Así que cualquier sugerencia ¿cómo puedo hacer eso?

Puedes hacer algo como esto:

 if(jsonObj.has("statistics")){ Iterator<Object> keys = stats.keys(); while(keys.hasNext()){ String key = (String) keys.next(); JSONObject obj = new JSONObject(); obj = stats.getJSONObject(key); // get JSON }// end while }//end if 

use JSONObject.keys() para obtener el iterador de claves, luego getJsonObject( key) para obtener el objeto.

Pruebe a continuación código-

 JSONArray nameArray = statisics.names(); JSONArray valArray = statisics.toJSONArray(nameArray); 

donde el método names () devuelve una matriz de nombres y se almacena en nameArray y valArray contiene la matriz de valores correspondiente a valArray.

Puede iterar utilizando para el bucle sobre estos array para obtener valores.

Utilizar como este

 JSONObject jsonOnb = json.getJSONObject("statistics") ; JSONObject pagesObj = jsonOnb.getJSONObject(jsonOnb.names().getString(0)); Log.i("pageid", "pageid= " +pagesObj.get("param_id")); Log.i("title", "title= " +pagesObj.get("cat_id")); .............. 
  • Android conectar mysql
  • Implementación de Google Analytics V4 con sabores de producto
  • Asignación de un JSONObject a una lista con Flexjson en Java / Android
  • Cómo serializar objeto a JSON?
  • Compruebe si existe un objeto en JSON
  • Convertir JSONArray a Array de cadenas
  • Jackson ObjectMapper Definiciones de definiciones conflictivas (Android.Graphics.Bitmap)
  • Cómo configurar gson para excluir 0 valores enteros
  • Alternativa del método Jsoup.parse ()
  • @IntDef Anulación de soporte de Android con deserialización de Jackson
  • Problema al analizar JSON
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.