JSON Funciones
PHP Manual

json_last_error

(PHP 5 >= 5.3.0)

json_last_errorDevuelve el último error que ocurrió

Descripción

int json_last_error ( void )

Retorna el último error (si existe) que ocurrió en el último análisis JSON.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve un integer, el valor puede ser una de las siguientes constantes:

Códigos de error de JSON
Constante Significado Disponibilidad
JSON_ERROR_NONE No ocurrió ningún error  
JSON_ERROR_DEPTH Se ha excedido la profundidad máxima de la pila  
JSON_ERROR_CTRL_CHAR Error del carácter de control, posiblemente se ha codificado de forma incorrecta  
JSON_ERROR_STATE_MISMATCH JSON con formato incorrecto o inválido  
JSON_ERROR_SYNTAX Error de sintaxis  
JSON_ERROR_UTF8 Caracteres UTF-8 mal formados, posiblemente codificados de forma incorrecta PHP 5.3.3

Ejemplos

Example #1 Ejemplo de json_last_error()

<?php
// Un string json válido
$json[] = '{"Organización": "Equipo de documentación PHP"}';

// Un string json no válido que causa un error de sintaxis, en este caso, se ha
// usado ' en vez de " para entrecomillar
$json[] = "{'Organización': 'Equipo de documentación PHP'}";


foreach(
$json as $string)
{
    echo 
'Decodificando: ' $string;
    
json_decode($string);

    switch(
json_last_error())
    {
        case 
JSON_ERROR_DEPTH:
            echo 
' - Excedido tamaño máximo de la pila';
        break;
        case 
JSON_ERROR_CTRL_CHAR:
            echo 
' - Encontrado carácter de control no esperado';
        break;
        case 
JSON_ERROR_SYNTAX:
            echo 
' - Error de sintaxis, JSON mal formado';
        break;
        case 
JSON_ERROR_NONE:
        echo 
' - Sin errores';
        break;
    }

    echo 
PHP_EOL;
}
?>

El resultado del ejemplo sería:

Decoding: {"Organización": "Equipo de documentación PHP"} - Sin errores
Decoding: {'Organización': 'Equipo de documentación PHP'} - Error de sintaxis, JSON mal formado

Ver también


JSON Funciones
PHP Manual