Грешки на парсера при анализ на JSON в PHP

С помощта на функцията json_last_error можем да разберем каква точно грешка е възникнала при парсването на JSON. Нека да видим как се прави това. Нека имаме некоректен JSON:

php<?php
  $json = '["a", "b", "c",]';
?>

Нека се опитаме да го анализираме:

php<?php
  $data = json_decode($json);
  var_dump($data); // ще върне null
?>

Тъй като е възникнала грешка, то json_last_error при извикване ще върне номера на тази грешка:

php<?php
  $error = json_last_error();
  var_dump($error); // номер на грешката
?>

Върнатият номер може да се сравнява със специални константи на PHP. Въз основа на това може да се напише код, който улавя различни типове грешки:

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;
  }
?>
Задание 1

Даден е низ с някакъв JSON. Анализирайте го в структура от данни на PHP. Изведете резултата от анализа или причината за грешката, ако анализът на JSON не успее.