JSON-in PHP-də analiz edilərkən parser səhvləri
json_last_error funksiyası vasitəsilə
JSON analizi zamanı tam olaraq hansı səhvin
baş verdiyini öyrənə bilərsiniz.
Gəlin bunun necə edildiyinə
baxaq. Tutaq ki, bizdə düzgün olmayan
JSON var:
<?php
$json = '["a", "b", "c",]';
?>
Gəlin onu analiz etməyə çalışaq:
<?php
$data = json_decode($json);
var_dump($data); // null çıxaracaq
?>
Səhv baş verdiyi üçün, json_last_error
çağırıldıqda həmin səhvin nömrəsini
çıxaracaq:
<?php
$error = json_last_error();
var_dump($error); // səhv nömrəsi
?>
Qaytarılan nömrəni PHP-nin xüsusi sabitləri ilə müqayisə etmək olar. Buna əsaslanaraq müxtəlif tipli səhvləri tutmaq üçün kod yazmaq olar:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'səhv yoxdur';
break;
case JSON_ERROR_DEPTH:
echo 'maksimum yığın dərinliyinə çatılıb';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'düzgün olmayan bitlər və ya rejim uyğunsuzluğu';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'düzgün olmayan idarəedici simvol';
break;
case JSON_ERROR_SYNTAX:
echo 'sintaktik səhv, düzgün olmayan JSON';
break;
case JSON_ERROR_UTF8:
echo 'düzgün olmayan UTF-8 simvolları, ola bilsin ki, səhv kodlaşdırılıb';
break;
default:
echo 'naməlum səhv';
break;
}
?>
Müəyyən JSON olan sətir verilib. Onu PHP məlumat quruluşuna analiz edin. Analizin nəticəsini və ya JSON-u analiz etmək mümkün olmadıqda, səhvin səbəbini çıxarın.