entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Problema JSON, PHP y Android

Hola, estoy haciendo un programa que coge de una base de datos mysql unos datos y crea un JSON para enviarlo a android. El problema que tengo es que no crea bien el JSON y no encuentro el error por ningun lado.
Les dejo aqui el codigo del PHP:

<?php $host="hostname";  $username="username"; $password="password" db_name="db_name"; $con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql = "select * from mensajv"; $result = mysql_query($sql); $json = array();if(mysql_num_rows($result)){while($row=mysql_fetch_assoc($result)){$json['mensajv'][]=$row;}}mysql_close($con);echo json_encode($json);?>

He probado http://pro.jsonlint.com/ y me da un error que no consigo quitar, la url de la pagina es: http://www.dalocon.tk/droidlogin/mensajv.php
Espero que puedan ayudarme. Muchas gracias.

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola David,

estoy viendo la salida de http://www.dalocon.tk/droidlogin/mensajv.php y copiando y pegando en en http://pro.jsonlint.com/ no se ve ningún error.

En cambio si a http://pro.jsonlint.com/ le das el URL para que pruebe sí da un error.

El motivo es que antes de la cadena JSON estás emitiendo otros caracteres, y estos no son parte de la cadena ni están correctamente codificados. Lo que aparece al inicio es:

 

Copiar y pegar la cadena funciona, porque el navegador está descartando la parte inválida del inicio.

Verificá que no tengas ninguna salida ni espacios en blanco en algún script que estés invocando con include() o require(), como así también que no haya espacios en blanco antes de

<?php

Saludos cordiales

0voto

dalocon comentado

Hola Leonardo, Muchas gracias por contestar tan rapido.
Lo que me pasa es que he realizado una prueba con un ejemplo que venia en internet de un json y el programa android me lo muestra correctamente, pero al poner mi json me da el error: value of type java.lang.string cannot be converted to jsonobject en java.
Al poner el link del ejemplo que he encontrado en google no da ningun error en jsonlint, pero el mio si, entonces no se cual es el fallo. Pero en Android no creo que esté el fallo, ya que sino no funcionaria con el ejemplo.
Este es el ejemplo: http://cpriyankara.coolpage.biz/employee_details.php
Muchas gracias por su ayuda.

1voto

dalocon comentado

Muchisimas gracias por su ayuda, ya me estaba volviendo loco..
Ya he conseguido detectar el error, llevaba razon con lo de la cadena  . Por si a alguno le sirve, voy a decir como he conseguido solucionarlo:
Yo utilizo Notepad++ y estaba realizando la codificacion en UTF-8. Para solucionar el problema he tenido que cambiar la codificacion a UTF-8 sin BOM.
Muchisimas gracias Leonardo, me ha sido de gran utilidad.
Un saludo

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta