JSON-i parsrimise vead PHP-s
Funktsiooni json_last_error abil
saame teada, milline konkreetne viga
tekkis JSON-i parsimisel.
Vaatame, kuidas seda
tehakse. Olgu meil
ebakorrektne JSON:
<?php
$json = '["a", "b", "c",]';
?>
Proovime seda sõeluda:
<?php
$data = json_decode($json);
var_dump($data); // väljastab null
?>
Kuna tekkis viga, siis json_last_error
annab väljakutsel selle vea numbri:
<?php
$error = json_last_error();
var_dump($error); // vea number
?>
Tagastatavat numbrit saab võrrelda PHP erikonstantidega. Selle põhjal saab kirjutada koodi, mis püüab kinni erinevat tüüpi vead:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'vigu ei ole';
break;
case JSON_ERROR_DEPTH:
echo 'saavutatud maksimaalne stacki sügavus';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'ebakorrektsed bitid või režiimide mittevastavus';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'ebakorrektne juhtsümbol';
break;
case JSON_ERROR_SYNTAX:
echo 'süntaksiviga, ebakorrektne JSON';
break;
case JSON_ERROR_UTF8:
echo 'ebakorrektsed UTF-8 sümbolid, võib-olla valesti kodeeritud';
break;
default:
echo 'tundmatu viga';
break;
}
?>
Antud on string mingi JSON-iga. Sõeluge see PHP andmestruktuuriks. Väljastage sõelumise tulemus või vea põhjus, kui JSON-i sõeluda ei õnnestunud.