note 125351 deleted from function.json-last-error by cmb

From: Date: Fri, 11 Sep 2020 14:03:44 +0000
Subject: note 125351 deleted from function.json-last-error by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-215098@lists.php.net to get a copy of this message
Note Submitter: jairospino at ingenieros dot com ---- Esta clase de ejemplo muestra como podríamos validar si un Json tiene el formato correctamente. <?php class Biblioteca { // Se valida que el formato Json este correctamente public function validarJson($json = 'error') { $retornaJson = json_decode($json); switch (json_last_error()) { case JSON_ERROR_NONE: $error = ''; break; case JSON_ERROR_DEPTH: $error = 'Se superó la profundidad máxima de la pila.'; break; case JSON_ERROR_STATE_MISMATCH: $error = 'JSON inválido o mal formado.'; break; case JSON_ERROR_CTRL_CHAR: $error = 'Error de carácter de control, posiblemente codificado incorrectamente.'; break; case JSON_ERROR_SYNTAX: $error = 'Error de sintaxis, JSON con formato incorrecto.'; break; case JSON_ERROR_UTF8: $error = 'Caracteres UTF-8 con formato incorrecto, posiblemente codificados incorrectamente.'; break; case JSON_ERROR_RECURSION: $error = 'Una o más referencias recursivas en el valor a codificar.'; break; case JSON_ERROR_INF_OR_NAN: $error = 'Uno o más valores NaN o InF en el valor que se va a codificar.'; break; case JSON_ERROR_UNSUPPORTED_TYPE: $error = 'Se proporcionó un valor de un tipo que no se puede codificar.'; break; default: $error = 'Ocurrió un error JSON desconocido.'; break; } if ($error !== '') { return $error; } return $retornaJson; } /** respuestaJson($msn, $estado, $data) * - Envía una respuesta a la solicitud realizada por el usuario * * # Parámetros que recibe * * @msn : indica el mensaje que el usuario tendrá como respuesta a su solicitud * * @data : contiene los datos de la respuesta en formato Json * * @estado: muestra el estado de la respuesta a la solicitud realizada por el usuario o sistema * Este estado es especificado por el <<desarrollador>> * * Nota: se puede reemplazar "JSON_ERROR_NONE" por "0" y funciona igual */ public function respuestaJson(string $msn = 'Sin mensaje', string $estado = 'ok', string $data = null): string { // en caso que se reciban datos // se verifica que tengan el formato Json correcto if ($data) { $testJson = $this->validarJson($data); if (json_last_error() !== JSON_ERROR_NONE) { $estado = 'error'; $msn = $testJson; $data = null; } } $jsonRespuesta = array( "estado" => $estado, "mensaje" => $msn, "data" => $data ); return json_encode($jsonRespuesta, JSON_UNESCAPED_UNICODE); } } $verMns = new Biblioteca(); echo $verMns->respuestaJson('Petición exitosa', 'ok','{"id":1122,"nombre":"Jair Ospino Ardila"}'); //Tendríamos como respuesta { estado: "ok", mensaje: "Petición exitosa", data: "{"id":1122,"nombre":"Jair Ospino Ardila"}" }

« previous php.notes (#215098) next »