Хатогиҳои таҷзеҳкунанда дар таҷзеҳи 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 муяссар нагардад.