Ce face json_validate
json_validate a apărut în PHP 8.3. Spune doar dacă textul este JSON corect, fără să construiască tablouri sau obiecte. Pentru texte mari consumă mult mai puțină memorie decât json_decode.
Folosește-o când vrei doar să verifici datele (de exemplu înainte să le salvezi ca atare în baza de date). Dacă oricum ai nevoie de date, apelează direct json_decode. Motivul erorii îl afli cu json_last_error_msg().
Parametri
| Parametru | Descriere |
|---|---|
$json |
Textul verificat. |
$depth |
Opțional. Adâncimea maximă permisă a structurii. |
$flags |
Opțional. Singura opțiune acceptată este JSON_INVALID_UTF8_IGNORE. |
Ce returnează
true dacă textul este JSON valid, altfel false.
Exemple
Exemplul 1: JSON valid și invalid
<?php
var_dump(json_validate('{"nume": "Ana", "varsta": 25}'));
var_dump(json_validate("{nume: 'Ana'}"));
var_dump(json_validate("[1, 2, 3,]"));
var_dump(json_validate('"doar un text"'));
Rezultat
bool(true)
bool(false)
bool(false)
bool(true)
Exemplul 2: Mesajul erorii
<?php
$primit = '{"comanda": 1024, "produse": [';
if (!json_validate($primit)) {
echo "JSON invalid: " . json_last_error_msg();
}
Rezultat
JSON invalid: Syntax error
Greșeli frecvente
- Apelezi
json_validateși imediat dupăjson_decodepe același text. Textul este analizat de două ori. Dacă ai nevoie de date, folosește doarjson_decodecuJSON_THROW_ON_ERROR. - Rulezi codul pe un server cu PHP mai vechi de 8.3 și primești
Call to undefined function json_validate().
Comenzi înrudite
json_decode: Transformă un text JSON în tablou sau obiect PHP.json_last_error / json_last_error_msg: Returnează codul erorii de la ultimul apel json_encode, json_decode sau json_validate. json_last_error_msg dă mesajul.json_encode: Transformă un tablou sau obiect PHP în text JSON.