Грешке парсера при парсирању JSON-a у PHP-у
Користећи функцију json_last_error
можете сазнати која се тачно грешка
десила при парсирању JSON-a.
Хајде да погледамо како се то
ради. Рецимо да имамо
неисправан 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-a није успело.