Napake pri razčlenjevanju JSON v PHP
S funkcijo json_last_error
lahko ugotovimo, katera napaka
se je zgodila pri razčlenjevanju JSON.
Poglejmo, kako se to
naredi. Recimo, da imamo
neveljaven JSON:
<?php
$json = '["a", "b", "c",]';
?>
Poskusimo ga razčleniti:
<?php
$data = json_decode($json);
var_dump($data); // izpiše null
?>
Ker je prišlo do napake, bo json_last_error
ob klicu vrnil številko te napake:
<?php
$error = json_last_error();
var_dump($error); // številka napake
?>
Vrnjeno številko lahko primerjamo s posebnimi konstantami PHP. Na podlagi tega lahko napišemo kodo, ki prestreže različne tipe napak:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'ni napak';
break;
case JSON_ERROR_DEPTH:
echo 'dosežena je največja globina sklada';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'neveljavni biti ali neujemanje načinov';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'neveljaven krmilni znak';
break;
case JSON_ERROR_SYNTAX:
echo 'skladenjska napaka, neveljaven JSON';
break;
case JSON_ERROR_UTF8:
echo 'neveljavni znaki UTF-8, morda napačno kodirani';
break;
default:
echo 'neznana napaka';
break;
}
?>
Podan je niz z določenim JSON. Razčlenite ga v strukturo podatkov PHP. Izpišite rezultat razčlenjevanja ali razlog napake, če razčlenitev JSON ni uspela.