Błędy parsera podczas analizy JSON w PHP

Za pomocą funkcji json_last_error można dowiedzieć się, jaki dokładnie błąd wystąpił podczas parsowania JSON. Spójrzmy, jak to się robi. Załóżmy, że mamy nieprawidłowy JSON:

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

Spróbujmy go przeanalizować:

php<?php
  $data = json_decode($json);
  var_dump($data); // wypisze null
?>

Ponieważ wystąpił błąd, to json_last_error przy wywołaniu zwróci numer tego błędu:

php<?php
  $error = json_last_error();
  var_dump($error); // numer błędu
?>

Zwracany numer można porównywać ze specjalnymi stałymi PHP. Na tej podstawie można napisać kod, wychwytujący różne typy błędów:

php<?php
   switch (json_last_error()) {
    case JSON_ERROR_NONE:
      echo 'brak błędów';
    break;
    case JSON_ERROR_DEPTH:
      echo 'osiągnięto maksymalną głębokość stosu';
    break;
    case JSON_ERROR_STATE_MISMATCH:
      echo 'nieprawidłowe bity lub niezgodność trybów';
    break;
    case JSON_ERROR_CTRL_CHAR:
      echo 'nieprawidłowy znak kontrolny';
    break;
    case JSON_ERROR_SYNTAX:
      echo 'błąd składniowy, nieprawidłowy JSON';
    break;
    case JSON_ERROR_UTF8:
      echo 'nieprawidłowe znaki UTF-8, możliwe nieprawidłowe kodowanie';
    break;
    default:
      echo 'nieznany błąd';
    break;
  }
?>
Задание 1

Dany jest ciąg znaków z pewnym JSON. Przeanalizuj go do struktury danych PHP. Wypisz wynik analizy lub przyczynę błędu, jeśli przeanalizowanie JSON się nie powiodło.