PHPda JSONni tahlil qilishda parser xatolari
json_last_error funksiyasi yordamida
JSONni tahlil qilishda aniq qanday xato
yuz berganligini bilib olishingiz mumkin.
Keling, buni qanday qilib
amalga oshirishni ko'rib chiqaylik. Faraz qilaylik, bizda
noto'g'ri JSON mavjud:
<?php
$json = '["a", "b", "c",]';
?>
Keling, uni tahlil qilishga harakat qilaylik:
<?php
$data = json_decode($json);
var_dump($data); // null qiymatini chiqaradi
?>
Xato yuz bergani sababli, json_last_error
chaqirilganda ushbu xatoning raqamini qaytaradi:
<?php
$error = json_last_error();
var_dump($error); // xato raqami
?>
Qaytarilgan raqamni PHPning maxsus konstantalari bilan solishtirish mumkin. Shu asosda turli xil xato turlarini ushlab turadigan kod yozish mumkin:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'xatolar yo''q';
break;
case JSON_ERROR_DEPTH:
echo 'stekning maksimal chuqurligiga erishildi';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'noto''g''ri raqamlar yoki rejimlarning mos kelmasligi';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'noto''g''ri boshqaruv belgisi';
break;
case JSON_ERROR_SYNTAX:
echo 'sintaktik xato, noto''g''ri JSON';
break;
case JSON_ERROR_UTF8:
echo 'noto''g''ri UTF-8 belgilari, ehtimol noto''g''ri kodlangan';
break;
default:
echo 'noma''lum xato';
break;
}
?>
Ma'lum bir JSON bilan satr berilgan. Uni PHP ma'lumotlar tuzilishiga tahlil qiling. Tahlil natijasini yoki agar JSONni tahlil qilish muvaffaqiyatsiz tugagan bo'lsa, xatoning sababini chiqaring.