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?
- Org.json.JSONException: Cadena no terminada en el carácter 1834
- Android - cómo analizar json con el objeto en el índice
- La aplicación muestra error en el nuevo dispositivo (piruleta) pero funciona bien en mi dispositivo antiguo (kitkat)
- Verificar firma digital en Android
- Formato de fecha recuperado de un servicio
- ¿Cómo puedo utilizar Retrofit para POST un complejo JSON parámetro
- Análisis de la matriz JSON con una sub-matriz con GSON?
- Convertir Facebook JSON created_time de formato String a formato largo
- Jackson ObjectMapper con claves JSON arbitrarias
- Uso del archivo JSON en los recursos de la aplicación para Android
- Android JSON HttpClient para enviar datos al servidor PHP con HttpResponse
- Cómo crear datos de formato JSON en android?
- Cómo analizar esta matriz JSON anidada en android
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")); ..............
- ¿Por qué debería un método estático en java aceptar sólo variables finales o no finales dentro de su método, pero no estático?
- Base de datos no copiar desde activos