error al consumir datos de json JSONException

180 views
Skip to first unread message

Yanet Hevia Quintana

unread,
Jun 15, 2014, 4:38:10 PM6/15/14
to desarrollad...@googlegroups.com
Hola chicos, tengo una aplicación que consume datos de un json que conecta una aplicación con mysql, cuando la tabla tiene datos no pasa nada pero cuando el json me devuelve null me da este error 

Error parsing data org.json.JSONException: Value null of type org.json.JSONObject$1 cannot be converted to JSONArray

Estoy clara que pasa en esta línea 

jsoArray = new JSONArray(result);

porque el result es null pero al poner la comparación if(result!=null) siempre me dice que no lo es y entra a la línea es como sino pasara bien la comparación, he buscado en un montón de sitios pero no logro dar con la solución algo se me esta escapando y creo que es algún problema de concepto no lo se? alguien me podría ayudar??

un saludoo

Jefferson Delgado P.

unread,
Jun 16, 2014, 2:22:10 AM6/16/14
to desarrollad...@googlegroups.com
Buenas Yanet,

El error, por lo que entiendo, te está diciendo que no puede convertir un JSONObject en un JSONArray. Creo que la variable jsoArray debería ser un JSONObject y hacer un new JSONObject (result)

Prueba y nos dices.


Un saludo


--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAJrnG3Q%2BQoxGQwLvKXhEmGB9FcbEbstErPxcj2nfhnnuOXQ5Cw%40mail.gmail.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Yanet Hevia Quintana

unread,
Jun 16, 2014, 3:41:27 AM6/16/14
to desarrollad...@googlegroups.com

Si si eso lo tengo claro, el tema es que cuando no encuentra nada en la bd el result es null y al crear el array json es que me da el error si tiene datos perfecto pero sino pasa esto, hago la comprobacion de result!= null para que si es null no entre pero siempre sea null o no entra al if.
Por ahora lo he solucionado devolviendo en el json valores 0 y luego lo compruebo pero no se si sea lo mas optimo, es decir aunque no haya nada en la base d datos devuelvo un array con valor 0, creo q ahi estoy haciendo cosas inecesarias no?

desde mi lg 9

Juan de Dios Maldonado Sánchez

unread,
Jun 16, 2014, 4:19:47 AM6/16/14
to desarrollad...@googlegroups.com
Para algo está el depurador.
Pones un punto de ruptura justo donde se supone que tiene que entrar al if, y ves el valor real que tiene. (y su tipo)


Yanet Hevia Quintana

unread,
Jun 16, 2014, 5:27:51 AM6/16/14
to desarrollad...@googlegroups.com
pues muy bien juan ya eso lo hecho y me pone cuando es null
 result=null 
que es lo raro, pero sin embargo la comparación de if(result!=null) entra siempre, algo se me escapa pero no logro ver que es
muchas gracias por la ayuda


Juan de Dios Maldonado Sánchez

unread,
Jun 16, 2014, 5:39:56 AM6/16/14
to desarrollad...@googlegroups.com
Mi sentido arácnido me está diciendo que lo que tienes no es:

result = null

sino:

result = "null"

(Por eso mismo, cuando te dije que miraras el valor de "result", que te fijaras en el tipo. (que en tu caso, verás como es un String o similar)

Me explico: Lo que tienes es una cadena de texto con el valor "null". (Por eso el "if" sigue entrando, porque el objeto no vale null, sino que es un objeto que existe y contiene el texto "null")

Si en "result" SIEMPRE vas a tener un valor (una cadena de texto, independientemente de tener el texto "null" o el texto que representa el JSON, usa la comparación de cadenas) Ejemplo:

if(!result.equals("null"))

Nota: Si mi sentido arácnido no me ha fallado, te digo ya, que quien ha programado ese script que genera el JSON es un poco cutre. (ya que sacar el texto "null" directamente en caso de error es una muy mala práctica)





Yanet Hevia Quintana

unread,
Jun 16, 2014, 7:13:19 AM6/16/14
to desarrollad...@googlegroups.com
puf creo que entre tantas pruebas que he hecho he probado también esa comparación, el script devuelve un array vació cuando no hay datos pero lo probare a ver , mil gracias por ayudar un saludo


Juan de Dios Maldonado Sánchez

unread,
Jun 16, 2014, 7:19:24 AM6/16/14
to desarrollad...@googlegroups.com
Si miraras con atención al valor result en la línea:

jsoArray = new JSONArray(result);

Punto de ruptura ahí e inspecciona la variable. No tiene pérdida.

También puedes sacar su valor mediante Log y así ver qué valor tenía justo antes de la excepción.

En la programación TODO se comporta tal cual lo tienes programado. Un programa no va a hacer nada que no tengas programado. Si hace algo mal es porque lo tienes programado para que lo haga mal.



Reply all
Reply to author
Forward
0 new messages