json_validate

(PHP 8 >= 8.3.0)

json_validateVerifica si una string contiene JSON válido

Descripción

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Devuelve si la string dada es sintácticamente JSON válido. Si json_validate() devuelve true, json_decode() decodificará con éxito la string dada utilizando los mismos depth y flags.

Si json_validate() devuelve false, la causa puede ser recuperada utilizando json_last_error() y json_last_error_msg().

json_validate() utiliza menos memoria que json_decode() si el contenido JSON decodificado no es utilizado, ya que no necesita construir la estructura de array o de objeto que contiene el contenido.

Precaución

Llamar a json_validate() inmediatamente antes de json_decode() analizará innecesariamente la string dos veces, ya que json_decode() realiza implícitamente una validación durante la decodificación.

json_validate() no debe ser utilizado a menos que la decodificación del contenido JSON no sea inmediatamente utilizada y que sea necesario saber si la string contiene JSON válido.

Parámetros

json

La string a validar.

Esta función solo funciona con strings codificadas en UTF-8.

Nota:

PHP implementa un superconjunto de JSON tal como se especifica en la » RFC 7159 original.

depth

El nivel máximo de profundidad de la estructura a decodificar. El valor debe ser mayor que 0, y menor o igual a 2147483647.

flags

Actualmente, solo JSON_INVALID_UTF8_IGNORE es aceptado.

Valores devueltos

Devuelve true si la string dada es sintácticamente JSON válido, de lo contrario devuelve false.

Errores/Excepciones

Si depth está fuera del rango permitido, se lanza una ValueError.

Si flags no es un flag válido, se lanza una ValueError.

Ejemplos

Ejemplo #1 Ejemplos de json_validate()

<?php
var_dump
(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

El resultado del ejemplo sería:

bool(true)
bool(false)

Ver también