PHP'де JSON парсер катасынын оңдоо
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 маалымат структурасына ажыратыңыз. Эгерде JSON'ду ажыратуу ишке ашпаса, ажыратуунун жыйынтыгын же катанын себебин чыгарыңыз.