¿Cómo comprobar si existe una llave json?
Así pues, consigo algunos valores de JSON del servidor pero no sé si habrá un campo particular o no.
Asi como:
- Uso del archivo JSON en los recursos de la aplicación para Android
- Recepción del cuerpo de respuesta en Retrofit2 pero onResponse no se recibe
- NumberFormatException en GSON al convertir String a doble
- Retrofit 2 RxJava - Gson - Deserialización "Global", tipo respuesta de cambio
- Cómo mantener múltiples google-service.json en Android Studio
{ "regatta_name":"ProbaRegatta", "country":"Congo", "status":"invited" }
Y a veces, habrá un campo extra como:
{ "regatta_name":"ProbaRegatta", "country":"Congo", "status":"invited", "club":"somevalue" }
Me gustaría comprobar si el campo llamado "club" existe para que al analizar no voy a obtener org.json.JSONException: No hay valor para el club
- ¿Cuál es la forma estándar de publicar el objeto JSON junto con el archivo utilizando MultipartEntityBuilder y el cliente HTTP en Android
- "Text1 / Text2" La cadena se reemplaza por "Text1 \ / Text2" en android
- ¿Cómo buscar información de usuario de Google GAIA ID?
- Errores de json-parsing en tiempo de ejecución
- LoopJ AndroidAsyncHttp y JSON POST ARRAY
- Imágenes de Picasso Library y GridView
- Proguard problema durante el uso de GSON
- Android - ¿cómo agregar el objeto JSON a sharedPreferences?
La clase JSONObject tiene un método llamado "has":
http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)
Devuelve true si este objeto tiene una asignación de nombre. La asignación puede ser NULL.
Puede comprobar esta manera donde 'HAS' – Devuelve true si este objeto tiene una asignación de nombre. La asignación puede ser NULL.
if (json.has("status")) { String status = json.getString("status")); } if (json.has("club")) { String club = json.getString("club")); }
También puede comprobar usando 'isNull' – Devuelve true si este objeto no tiene asignación de nombre o si tiene una asignación cuyo valor es NULL.
if (!json.isNull("club")) String club = json.getString("club"));
JSONObject#has
, proporcionando la key
como entrada y compruebe si el método devuelve true
o false
. Usted también podría
Utilice optString
lugar de getString
:
Devuelve el valor asignado por nombre si existe, forzándolo si es necesario. Devuelve la cadena vacía si no existe tal correlación
Justo antes de leerlo, compruébelo como antes de leerlo
JSONObject json_obj=new JSONObject(yourjsonstr); if(json_obj.isNull("club")) { //it's contain value to be read operation } else { //it's not contain key club or isnull so do this operation here }
IsNull definición de función
Returns true if this object has no mapping for name or if it has a mapping whose value is NULL.
Documentación oficial debajo del enlace para la función isNull
http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)
Prueba esto
if(!jsonObj.isNull("club")){ jsonObj.getString("club"); }
Puede utilizar has
public boolean has(String key)
Determine si el JSONObject contiene una clave específica .
Ejemplo
JSONObject JsonObj = new JSONObject(Your_API_STRING); //JSONObject is an unordered collection of name/value pairs if (JsonObj.has("address")) { //Checking address Key Present or not String get_address = JsonObj .getString("address"); // Present Key } else { //Do Your Staff }
- ¿Cuál es el uso de la imagen del sistema ARM EABI v7a en android?
- ¿Existe algún tipo de depuración de la consola Firebug o JavaScript para Android?