Памылкі парсера пры разборы 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. Выведзіце вынік разбору або прычыну памылкі, калі разабраць JSON не ўдалося.