Грешки при парсирање на 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.