PHP-de JSON-yň düşüriminde parser ýalňyşlyklary
json_last_error funksiýasy
kömegi bilen JSON düşürip okalýarka haýsy ýalňyşlygyň
ýüze çykanlygyny bileris.
Geliň, munyň nädip
edilýändigine seredeliň. Bizde nädogry JSON bolsun:
<?php
$json = '["a", "b", "c",]';
?>
Geliň, ony düşürip okamaga synanyşalyň:
<?php
$data = json_decode($json);
var_dump($data); // null çykarar
?>
Ýalňyşlyk ýüze çykany üçin, json_last_error
çaýyrylanda şol ýalňyşlygyň nomerini çykarar:
<?php
$error = json_last_error();
var_dump($error); // ýalňyşlygyň nomeri
?>
Yzyna gaýdarylýan nomeri PHP-niň ýörite konstantalary bilen deňeşdirip bileris. Şuňa esaslanýan dürli görnüşli ýalňyşlyklary tutýan kody ýazyp bileris:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'ýalňyşlyk ýok';
break;
case JSON_ERROR_DEPTH:
echo 'stegiň iň ýokary çuňlugyna ýetildi';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'nädogry razrýadlar ýa-da režimleriň gabat gelmezligi';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'nädogry dolandyryş simwoly';
break;
case JSON_ERROR_SYNTAX:
echo 'sintaktik ýalňyşlyk, nädogry JSON';
break;
case JSON_ERROR_UTF8:
echo 'nädogry UTF-8 simwollary, belki nädogry kodirlendi';
break;
default:
echo 'näbelli ýalňyşlyk';
break;
}
?>
Belli bir JSON bilen setir berlen. Ony PHP maglumat gurluşyna düşürip okap. Netijäni ýa-da JSON düşürip okalmasa, sebäbini çykaryň.