Erori de parser la analiza JSON în PHP
Cu ajutorul funcției json_last_error
se poate afla ce eroare exact
a avut loc la parsarea JSON.
Să vedem cum se face
asta. Să presupunem că avem
un JSON incorect:
<?php
$json = '["a", "b", "c",]';
?>
Să încercăm să-l analizăm:
<?php
$data = json_decode($json);
var_dump($data); // va afișa null
?>
Deoarece a apărut o eroare, json_last_error
la apel va returna numărul acestei erori:
<?php
$error = json_last_error();
var_dump($error); // numărul erorii
?>
Numărul returnat poate fi comparat cu constante speciale PHP. Pe baza acestuia se poate scrie cod, care prinde diferite tipuri de erori:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'fără erori';
break;
case JSON_ERROR_DEPTH:
echo 'a fost atinsă adâncimea maximă a stivei';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'biți incorecți sau nepotrivire de mod';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'caracter de control incorect';
break;
case JSON_ERROR_SYNTAX:
echo 'eroare de sintaxă, JSON incorect';
break;
case JSON_ERROR_UTF8:
echo 'caractere UTF-8 incorecte, posibil codat incorect';
break;
default:
echo 'eroare necunoscută';
break;
}
?>
Este dat un șir cu un JSON. Analizați-l într-o structură de date PHP. Afișați rezultatul analizei sau motivul erorii, dacă analiza JSON a eșuat.