Diferencia entre revisiones de «Función json validate»
Ir a la navegación
Ir a la búsqueda
([feat] Add information Función json validate) |
([feat] Add information Función json validate) |
||
Línea 13: | Línea 13: | ||
* RFC: [https://wiki.php.net/rfc/json_validate RFC] | * RFC: [https://wiki.php.net/rfc/json_validate RFC] | ||
= Ejemplo = | |||
== Antes de PHP 8.3 == | |||
$json = '{"name": "Luis Montiel"}'; | |||
$data = json_decode($json); | |||
if (json_last_error() === JSON_ERROR_NONE) { | |||
// JSON valido | |||
} else { | |||
// JSON invalido | |||
} | |||
== Después de PHP 8.3 == | |||
$json = '{"name": "Luis Montiel"}'; | |||
$valid = json_validate($json); | |||
if ($valid) { | |||
// JSON valido | |||
} else { | |||
// JSON invalido | |||
} |
Revisión del 09:21 22 oct 2023
Descripción
Para validar una cadena JSON anterior a PHP 8.3, se necesitaba pasarla a json_decode() y luego ver si se emitían errores y/o excepciones.
Al utilizar este enfoque para validar estructuras JSON grandes, corría el riesgo de quedarse sin memoria antes de determinar si era válida. Además, esto podría hacer que alcance el límite de memoria de PHP antes de procesar la estructura.
La nueva función tiene más rendimiento y menos susceptible a errores. La función es:
función json_validate(cadena $json, int $profundidad = 512, int $flags = 0): bool
Recursos
- RFC: RFC
Ejemplo
Antes de PHP 8.3
$json = '{"name": "Luis Montiel"}'; $data = json_decode($json);
if (json_last_error() === JSON_ERROR_NONE) { // JSON valido } else { // JSON invalido }
Después de PHP 8.3
$json = '{"name": "Luis Montiel"}'; $valid = json_validate($json);
if ($valid) { // JSON valido } else { // JSON invalido }