Greške parsera prilikom parsiranja JSON-a u PHP-u
Pomoću funkcije json_last_error
možemo saznati koja je greška
tačno nastupila prilikom parsiranja JSON-a.
Pogledajmo kako se to
radi. Pretpostavimo da imamo
neispravan JSON:
<?php
$json = '["a", "b", "c",]';
?>
Pokušajmo da ga parsiraju:
<?php
$data = json_decode($json);
var_dump($data); // ispisaće null
?>
Pošto je došlo do greške, json_last_error
će pri pozivu vratiti broj te greške:
<?php
$error = json_last_error();
var_dump($error); // broj greške
?>
Broj koji se vraća možemo upoređivati sa specijalnim PHP konstantama. Na osnovu toga možemo napisati kod koji hvata različite tipove grešaka:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'nema grešaka';
break;
case JSON_ERROR_DEPTH:
echo 'dostignuta maksimalna dubina steka';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'netačni razredi ili nepodudaranje režima';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'netačan kontrolni znak';
break;
case JSON_ERROR_SYNTAX:
echo 'sintaksna greška, neispravan JSON';
break;
case JSON_ERROR_UTF8:
echo 'netačni UTF-8 znakovi, moguće pogrešno kodiranje';
break;
default:
echo 'nepoznata greška';
break;
}
?>
Data je string sa određenim JSON-om. Parsirajte ga u PHP strukturu podataka. Ispišite rezultat parsiranja ili razlog greške, ako parsiranje JSON-a nije uspelo.