Cuando un JSON viene con error

Traté de muchas maneras poder utilizar un webservice que entregaba un JSON, pero no me daba ningún resultado.

Al principio pensé que estaba haciendo mal las cosas, utilizando Ajax, JQuery, etc. pero la verdad era que el servicio estaba entregando los datos con unos caracteres raros al principio.

Obviamente Google me ayudó y di con la función que te permite limpiar esos caracteres que no corresponden y que no nos permitirán leer de manera correcta un JSON.

<?php
$datos = file_get_contents("http://domino.com/Json");
// Remover carcateres que no queremos
// http://www.php.net/chr
for ($i = 0; $i <= 31; ++$i) {
$datos = str_replace(chr($i), "", $datos);
}
$datos = str_replace(chr(127), "", $datos);
// algunos archivos comienzan con 'efbbbf' para marcar el comienzo del archivo (nivel binario)
// aqui lo detectamos y removemos, basicamente los 3 primeros caracteres
if (0 === strpos(bin2hex($datos), 'efbbbf')) {
$datos = substr($datos, 3);
}
//Decodificamos el json y lo imprimimos
$datos = json_decode( $datos );
print_r($datos);
?>

Ahora a continuar con el desarrollo de una aplicación web (y posiblemente para smartphone) consumiendo estos datos interesantes.

Deja un comentario