JSONды PHP жұмыс істеу кезінде парсер қателері
json_last_error функциясы арқылы
JSON талдау кезінде дәл қандай қате
болғанын білуге болады.
Бұның қалай жасалатынын
көрейік. Бізде дұрыс емес JSON бар делік:
<?php
$json = '["a", "b", "c",]';
?>
Оны талдап көрейік:
<?php
$data = json_decode($json);
var_dump($data); // null шығарады
?>
Қате болғандықтан, json_last_error
шақыру кезінде осы қатенің нөмірін шығарады:
<?php
$error = json_last_error();
var_dump($error); // қате нөмірі
?>
Қайтарылатын нөмірді PHP-тің арнайы константаларымен салыстыруға болады. Осы негізде әртүрлі қате түрлерін ұстайтын код жазуға болады:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'қателер жоқ';
break;
case JSON_ERROR_DEPTH:
echo 'стектің максимал тереңдігіне жетілді';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'дәйексіз разрядтар немесе режимдер сәйкессіздігі';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'дәйексіз басқару символы';
break;
case JSON_ERROR_SYNTAX:
echo 'синтаксистік қате, дәйексіз JSON';
break;
case JSON_ERROR_UTF8:
echo 'дәйексіз UTF-8 символдары, мүмкін дұрыс кодталмаған';
break;
default:
echo 'белгісіз қате';
break;
}
?>
Белгілі бір JSON бар жол берілген. Оны PHP деректер құрылымына талдаңыз. Талдау нәтижесін немесе егер талдау сәтсіз аяқталса, қате себебін шығарыңыз.