simdjson_is_valid

(PECL simdjson >= 2.0.0)

simdjson_is_validVerifica si un string JSON es válido

Descripción

simdjson_is_valid(string $json, int $depth = 512): bool

Toma un string codificado en JSON y devuelve true si es válido.

Parámetros

json

El string json a validar.

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

Esta función valida las entradas que json_decode() puede decodificar, siempre que sean inferiores a 4 Go de longitud.

depth

La profundidad máxima de la estructura a decodificar. El valor debe ser superior a 0, e inferior o igual a 2147483647. Quienes llamen a esta función deberían utilizar valores razonablemente pequeños, ya que profundidades mayores requieren más espacio de búfer y aumentarán la profundidad de recursión, a diferencia de la implementación actual de json_decode().

Valores devueltos

Devuelve true si json es un string JSON válido, de lo contrario false.

Errores/Excepciones

Si json es inválido, se lanza una SimdJsonException a partir de PECL simdjson 2.1.0, mientras que anteriormente se lanzaba una RuntimeException.

Si depth está fuera del rango permitido, se lanza una SimdJsonValueError a partir de PECL simdjson 3.0.0, mientras que anteriormente se lanzaba un error de nivel E_WARNING.

Ejemplos

Ejemplo #1 Ejemplos de simdjson_decode()

<?php
$json
= '{"a":1,"b":2,"c":3}';
$invalidJson = '{"a":1,"b":2,"c":';

var_dump(simdjson_is_valid($json));
var_dump(simdjson_is_valid($invalidJson));

?>

El resultado del ejemplo sería:

bool(true)
bool(false)

Ejemplo #2 Errores de depth

<?php
// Codificar datos con una profundidad máxima de 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Mostrar errores para diferentes profundidades.
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>

El resultado del ejemplo sería:

bool(true)
bool(false)

Notas

Nota:

La especificación JSON no es JavaScript, sino un subconjunto de JavaScript.

Nota:

En caso de que la decodificación falle, se lanza una SimdJsonException y SimdJsonException::getCode() y SimdJsonException::getMessage() pueden ser utilizados para determinar la naturaleza exacta del error.

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top