Compruebe si un determinado objeto JSON está disponible o no
Tengo el archivo de JSON como abajo que tiene que ser vertido en un ArrayList:
{ "main1" : [ { "child1" : valueA, "child2" : valueB, "child3" : valueC, }, { "child1" : value1, "child3" : value3, }, ], "main2" : "valueMain2" }
El elemento child2
tiene que ser verificado si existe o no y entonces se toma el valor. Puede ver que no aparece en la segunda matriz.
- Creación de un objeto JSON anidado
- Obtener valor específico de JSONArray
- ¿Pasar ArrayList con objetos a una nueva actividad?
- ¿Cómo recuperar un ID del elemento seleccionado en un Spinner dinámico?
- Android guarda la matriz de objetos personalizados
Estoy usando Native JSON (org.JSON) El código Java está abajo:
ArrayList<HashMap<String,String>> myList = new ArrayList<HashMap<String,String>>(); JSONObject json = <my_json_object>; JSONObject getchild2; JSONArray jArray = <my_json_object>.getJSONArray("main1"); for(int j = 0; j < jArray.length(), j++){ HashMap<String,String> map = new HashMap<String,String>(); map.put("First Value", jArray.getJSONObject(j).getString("child1")); map.put("Third Value", jArray.getJSONObject(j).getString("child3")); getchild2 = jArray.getJSONObject(j).getJSONObject("child2"); if(getchild2 == null){ map.put("Second Value", "Some Dummy Value"); } else { map.put("Second Value", jArray.getJSONObject(j).getString("child2")); } myList.add(map); }
¿Cómo puedo conseguir esto?
<my_json_object>
utiliza el análisis de URL nativo al obtener la respuesta HTTP de una solicitud de URL que se encuentra aquí: http://mobisys.in/blog/2012/01/parsing-json-from-url-in-android/
No funciona como el error está abajo:
E/AndroidRuntime(664): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
- Almacenar y recuperar un objeto de clase en preferencia compartida
- ¿Cómo hacer que un objeto sea accesible para todas las actividades de un programa Android?
- Android pasando BluetoothSocket a la siguiente actividad
- Determine si JSON es un JSONObject o JSONArray
- Cómo pasar un objeto de una actividad a otra en Android
- Guardar tabla de objetos personalizados en Preferencias compartidas
- Pon el Objeto como intención para la siguiente actividad
- Cómo guardar ArrayList personalizado en la rotación de la pantalla de Android?
De todos modos, tengo la solución con algunos Googling: lo re-enmarcado como,
if (!jArray.getJSONObject(j).has("child2")) { map.put("Second Value", "NA"); } else { map.put("Second Value", jArray.getJSONObject(j).getString("child2")); }
Creación del objeto JSONObject getchild2 = jArray.getJSONObject (j) .getJSONObject ("child2"); Era bastante, innecesario.
Y esto funciona, bastante perfectamente! Consulte esto para más detalles: Comprobación de si existe subobjeto en JSON
¡Gracias a todos por la ayuda!
getJSONObject("child2");
Lanzará una excepción si child2 no existe. Prueba esto en su lugar:
getchild2 = jArray.getJSONObject(j).optJSONObject("child2");
De esta manera usted no tiene que tomar una excepción si child2 no existe y en su lugar puede comprobar si hay null.
Prueba esto:
{"main1" : [{ "id":"1" "child1" : "valueA", "child2" : "valueB", "child3" : "valueC", }, { "id":"2" "child1" : "value1", "child3" : "value3", }] }
- Animar ImageView entre dos actividades que utilizan transiciones de elemento compartidas con ChangeImageTransform
- Cargar imágenes de la carpeta de activos