Created
December 26, 2018 06:31
-
-
Save parzibyte/497c322b528bc7cb7900847d6da6218c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// La función que nos dice el error | |
function obtenerErrorDeJSON() | |
{ | |
switch (json_last_error()) { | |
case JSON_ERROR_NONE: | |
return "No ha ocurrido ningún error"; | |
case JSON_ERROR_DEPTH: | |
return "Se ha excedido la profundidad máxima de la pila."; | |
case JSON_ERROR_STATE_MISMATCH: | |
return "Error por desbordamiento de buffer o los modos no coinciden"; | |
case JSON_ERROR_CTRL_CHAR: | |
return "Error del carácter de control, posiblemente se ha codificado de forma incorrecta."; | |
case JSON_ERROR_SYNTAX: | |
return "Error de sintaxis."; | |
case JSON_ERROR_UTF8: | |
return "Caracteres UTF-8 mal formados, posiblemente codificados incorrectamente."; | |
case JSON_ERROR_RECURSION: | |
return "El objeto o array pasado a json_encode() incluye referencias recursivas y no se puede codificar."; | |
case JSON_ERROR_INF_OR_NAN: | |
return "El valor pasado a json_encode() incluye NAN (Not A Number) o INF (infinito)"; | |
case JSON_ERROR_UNSUPPORTED_TYPE: | |
return "Se proporcionó un valor de un tipo no admitido para json_encode(), tal como un resource."; | |
default: | |
return "Error desconocido"; | |
} | |
} | |
# Esto puede venir de cualquier lugar, aquí lo ponemos en una variable directamente | |
$codificado = '{"idCuenta":"123ASD","cliente":"parzibyte","saldo":250,"movimientos":[{"tipo":"salida","monto":125,"fecha":"2018-12-25","involucrados":{"nombre":"Un nombre","idCuenta":"456465"}},{"tipo":"salida","monto":666.55,"fecha":"2018-12-26"}]}'; | |
$decodificado = json_decode($codificado, false, 1); | |
if($decodificado === null){ | |
echo "Error decodificando: " . obtenerErrorDeJSON(); | |
}else{ | |
echo $decodificado->cliente; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment