Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created December 26, 2018 06:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/497c322b528bc7cb7900847d6da6218c to your computer and use it in GitHub Desktop.
Save parzibyte/497c322b528bc7cb7900847d6da6218c to your computer and use it in GitHub Desktop.
<?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