note 125351 added to function.json-last-error

From: Date: Fri, 11 Sep 2020 13:47:27 +0000
Subject: note 125351 added to function.json-last-error
Groups: php.notes 
Request: Send a blank email to php-notes+get-215097@lists.php.net to get a copy of this message
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"}" } ---- Server IP: 45.112.84.4 Probable Submitter: 177.234.144.170 (proxied: 181.55.20.212) ---- Manual Page -- http://php.net/manual/en/function.json-last-error.php Edit -- https://master.php.net/note/edit/125351 Del: integrated -- https://master.php.net/note/delete/125351/integrated Del: useless -- https://master.php.net/note/delete/125351/useless Del: bad code -- https://master.php.net/note/delete/125351/bad+code Del: spam -- https://master.php.net/note/delete/125351/spam Del: non-english -- https://master.php.net/note/delete/125351/non-english Del: in docs -- https://master.php.net/note/delete/125351/in+docs Del: other reasons-- https://master.php.net/note/delete/125351 Reject -- https://master.php.net/note/reject/125351 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#215097) next »