# simdjson_is_valid

(PECL simdjson >= 2.0.0)

simdjson_is_valid — Vérifie si une chaîne JSON est valide

### Description

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

Prend une chaîne encodée en JSON et retourne true si elle est valide.

### Liste de paramètres

`json`

  Le string `json` à valider.

  Cette fonction ne fonctionne qu'avec des chaînes encodées en UTF-8.

  Cette fonction valide les entrées que json_decode() peut décoder, à condition qu'elles soient inférieures à 4 Go de longueur.

`depth`

  La profondeur maximale de la structure à décoder. La valeur doit être supérieure à `0`, et inférieure ou égale à `2147483647`. Ceux qui appellent cette fonction devraient utiliser des valeurs raisonnablement petites, car des profondeurs plus importantes nécessitent plus d'espace tampon et augmenteront la profondeur de récursion, contrairement à l'implémentation actuelle de json_decode().

### Valeurs de retour

Renvoie `true` si `json` est une chaîne JSON valide, sinon `false`.

### Erreurs / Exceptions

Si `json` est invalide, une SimdJsonException est lancée à partir de PECL simdjson 2.1.0, alors qu'auparavant, une RuntimeException était lancée.

Si `depth` est en dehors de la plage autorisée, une SimdJsonValueError est lancée à partir de PECL simdjson 3.0.0, alors qu'auparavant, une erreur de niveau `E_WARNING` était lancée.

### Exemples

Exemple #1 Exemples 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));
?>`

L'exemple ci-dessus va afficher :

    bool(true)
    bool(false)

Exemple #2 Erreurs de `depth`

`<?php
// Encoder des données avec une profondeur maximale de 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);
// Afficher les erreurs pour différentes profondeurs.
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>`

L'exemple ci-dessus va afficher :

    bool(true)
    bool(false)

### Notes

> Note:

> La spécification JSON n'est pas JavaScript, mais un sous-ensemble de JavaScript.

> Note:

> Dans le cas où le décodage échoue, une SimdJsonException est lancée et SimdJsonException::getCode() et SimdJsonException::getMessage() peuvent être utilisés pour déterminer la nature exacte de l'erreur.

### Voir aussi

- json_encode() - Retourne la représentation JSON d'une valeur
- json_decode() - Décode une chaîne JSON