PHP-de JSON-yň düşüriminde parser ýalňyşlyklary

json_last_error funksiýasy kömegi bilen JSON düşürip okalýarka haýsy ýalňyşlygyň ýüze çykanlygyny bileris. Geliň, munyň nädip edilýändigine seredeliň. Bizde nädogry JSON bolsun:

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

Geliň, ony düşürip okamaga synanyşalyň:

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

Ýalňyşlyk ýüze çykany üçin, json_last_error çaýyrylanda şol ýalňyşlygyň nomerini çykarar:

php<?php
  $error = json_last_error();
  var_dump($error); // ýalňyşlygyň nomeri
?>

Yzyna gaýdarylýan nomeri PHP-niň ýörite konstantalary bilen deňeşdirip bileris. Şuňa esaslanýan dürli görnüşli ýalňyşlyklary tutýan kody ýazyp bileris:

php<?php
   switch (json_last_error()) {
    case JSON_ERROR_NONE:
      echo 'ýalňyşlyk ýok';
    break;
    case JSON_ERROR_DEPTH:
      echo 'stegiň iň ýokary çuňlugyna ýetildi';
    break;
    case JSON_ERROR_STATE_MISMATCH:
      echo 'nädogry razrýadlar ýa-da režimleriň gabat gelmezligi';
    break;
    case JSON_ERROR_CTRL_CHAR:
      echo 'nädogry dolandyryş simwoly';
    break;
    case JSON_ERROR_SYNTAX:
      echo 'sintaktik ýalňyşlyk, nädogry JSON';
    break;
    case JSON_ERROR_UTF8:
      echo 'nädogry UTF-8 simwollary, belki nädogry kodirlendi';
    break;
    default:
      echo 'näbelli ýalňyşlyk';
    break;
  }
?>
Задание 1

Belli bir JSON bilen setir berlen. Ony PHP maglumat gurluşyna düşürip okap. Netijäni ýa-da JSON düşürip okalmasa, sebäbini çykaryň.