Valor de Json Parsing y Nullable int en android
Tengo un objeto json como he mostrado en dos casos: –
Caso 1 :
- Cómo probar si un JSONObject es nulo o no existe
- Servidor ByetHost que pasa valores html "Comprobación de su navegador" con JSON String
- No se puede deserializar la instancia de java.lang.String fuera de START_ARRAY
- JSONArray a HashMap
- Convertir InputStream a JSONObject
{ OWNER_ID : 145 }
Caso 2:
{ OWNER_ID : null }
Ahora, con el fin de analizar los datos que estoy utilizando la siguiente declaración:
int note_owner_id = jsonObject.getInt("OWNER_ID");
Soy consciente del hecho de que en java necesitamos usar la clase wrapper para extraer un entero NULL y el código debería escribirse así:
Integer note_owner_id = jsonObject.getInt("OWNER_ID");
Pero todavía no puedo analizar los datos con éxito. ¿Alguien puede ayudarme? ¿Cómo analizar el valor int en general para que no muestre ninguna excepción?
Gracias de antemano.
- El inicio de sesión de Android con el objeto json está vacío en la búsqueda incluso si la ejecución de archivos php en el navegador Chrome está bien
- Android Java; ¿Cómo puedo analizar un archivo JSON local de carpeta de activos en un ListView
- Retrofit y Jackson y análisis de JSON
- El inicio de Backend para móviles subscribeToCloudMessage no funcionará
- Múltiples elementos seleccionados RecyclerView in Activity.java
- Cordova / Phonegap / Ionic App - tienda local de imágenes remotas
- Obtención de encabezado de respuesta (Retrofit / OkHttp Client)
- Problema de desplazamiento Infinito Infinito de RecyclerView
Trate de esta manera, espero que esto le ayudará a resolver su problema.
En lugar de usar getInt (nombre de cadena) intenta usar optInt (nombre de cadena) o optInt (nombre de cadena, int fallback) que manejará el valor nulo:
jsonObject.optInt("OWNER_ID");
O
jsonObject.optInt("OWNER_ID", 0);
puedes usar optInt
public int optInt (String name)
Devuelve el valor asignado por nombre si existe y es un int o puede ser forzado a un int, o 0 de lo contrario.
para manejar valores nulos como
jsonObject.optInt("OWNER_ID");
o
jsonObject.optInt("OWNER_ID", defaultValue);
Puede establecer su Integer
con un ternario y isNull(String)
Integer note_owner_id = (jsonObject.isNull("OWNER_ID")) ? null : jsonObject.getInt("OWNER_ID");
sólo tiene que añadir debajo de la línea para comprobar su variable es nulo o no: –
if(jsonObject.isNULL("OWNER_ID")) { // code here when data is null } else { int note_owner_id = jsonObject.getInt("OWNER_ID"); }
- ¿Puedo obtener una vista previa de un cajón de navegación abierto en Android Studio
- Android Studio: Error al crear el código de error JVM: -1