PHPда JSONни таҳлил қилишда парсер хатолари

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ни таҳлил қилиш мумкин бўлмаса, таҳлил натижасини ёки хатолик сабабини чиқаринг.