downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Misc.> <json_encode
Last updated: Fri, 20 May 2011

view this page in

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



add a note add a note User Contributed Notes json_last_error
lior at mytopia dot com 09-Mar-2009 01:17
For those of you who prefer a more object oriented approach (as I do), here is a fairly simple wrapper that handles errors using exceptions:

<?php

class JSON
{
    public static function
Encode($obj)
    {
        return
json_encode($obj);
    }
   
    public static function
Decode($json, $toAssoc = false)
    {
       
$result = json_decode($json, $toAssoc);
        switch(
json_last_error())
        {
            case
JSON_ERROR_DEPTH:
               
$error ' - Maximum stack depth exceeded';
                break;
            case
JSON_ERROR_CTRL_CHAR:
               
$error = ' - Unexpected control character found';
                break;
            case
JSON_ERROR_SYNTAX:
               
$error = ' - Syntax error, malformed JSON';
                break;
            case
JSON_ERROR_NONE:
            default:
               
$error = '';                   
        }
        if (!empty(
$error))
            throw new
Exception('JSON Error: '.$error);       
       
        return
$result;
    }
}

?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites