PHP - Función json_last_error ()
La función json_last_error () puede devolver el último error ocurrido.
Sintaxis
int json_last_error( void )
La función json_last_error () puede devolver el último error (si lo hubiera) ocurrido durante la última codificación / decodificación JSON.
La función json_last_error () puede devolver un número entero y el valor puede ser una de las siguientes constantes:
- JSON_ERROR_NONE: no se ha producido ningún error
- JSON_ERROR_DEPTH: se superó la profundidad máxima de pila
- JSON_ERROR_STATE_MISMATCH: JSON no válido o con formato incorrecto
- JSON_ERROR_CTRL_CHAR - Error de carácter de control, posiblemente codificado incorrectamente
- JSON_ERROR_SYNTAX: error de sintaxis.
- JSON_ERROR_UTF8: caracteres UTF-8 con formato incorrecto, posiblemente codificados incorrectamente
- JSON_ERROR_RECURSION: una o más referencias recursivas en el valor que se codificará
- JSON_ERROR_INF_OR_NAN: uno o más valores NAN o INF en el valor que se va a codificar
- JSON_ERROR_UNSUPPORTED_TYPE: se proporcionó un valor de un tipo que no se puede codificar
- JSON_ERROR_INVALID_PROPERTY_NAME: se proporcionó un nombre de propiedad que no se puede codificar
- JSON_ERROR_UTF16: caracteres UTF-16 con formato incorrecto, posiblemente codificados incorrectamente
Ejemplo
<?php
// A valid json string
$json[] = '{"First Name": "Adithya"}';
// An invalid json string which causes an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{First Name': 'Adithya'}";
foreach($json as $string) {
echo "Decoding: " . $string;
json_decode($string);
switch(json_last_error()) {
case JSON_ERROR_NONE:
echo " - No errors";
break;
case JSON_ERROR_STATE_MISMATCH:
echo " - Underflow or the modes mismatch";
break;
case JSON_ERROR_DEPTH:
echo " - Maximum stack depth exceeded";
break;
case JSON_ERROR_CTRL_CHAR:
echo " - Unexpected control character found";
break;
case JSON_ERROR_SYNTAX:
echo " - Syntax error, malformed JSON";
break;
default:
echo " - Unknown error";
break;
}
echo PHP_EOL;
}
?>
Salida
Decoding: {"First Name": "Adithya"} - No errors
Decoding: {First Name': 'Adithya'} - Syntax error, malformed JSON