PHP'de JSON Ayrıştırılırken Oluşan Ayrıştırıcı Hataları

json_last_error işlevi ile JSON ayrıştırılırken tam olarak hangi hatanın oluştuğunu öğrenebiliriz. Bunun nasıl yapıldığına bir bakalım. Elimizde hatalı bir JSON olduğunu varsayalım:

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

Onu ayrıştırmaya çalışalım:

php<?php
  $data = json_decode($json);
  var_dump($data); // null çıktısını verecek
?>

Bir hata oluştuğu için, json_last_error çağrıldığında bu hatanın numarasını verecektir:

php<?php
  $error = json_last_error();
  var_dump($error); // hata numarası
?>

Döndürülen numara, PHP'nin özel sabitleri ile karşılaştırılabilir. Buna dayanarak, çeşitli hata türlerini yakalayan kod yazabiliriz:

php<?php
   switch (json_last_error()) {
    case JSON_ERROR_NONE:
      echo 'hata yok';
    break;
    case JSON_ERROR_DEPTH:
      echo 'maksimum yığın derinliğine ulaşıldı';
    break;
    case JSON_ERROR_STATE_MISMATCH:
      echo 'hatalı bitler veya mod uyumsuzluğu';
    break;
    case JSON_ERROR_CTRL_CHAR:
      echo 'hatalı kontrol karakteri';
    break;
    case JSON_ERROR_SYNTAX:
      echo 'sözdizimi hatası, hatalı JSON';
    break;
    case JSON_ERROR_UTF8:
      echo 'hatalı UTF-8 karakterleri, muhtemelen yanlış kodlanmış';
    break;
    default:
      echo 'bilinmeyen hata';
    break;
  }
?>
Задание 1

Bazı JSON içeren bir dize verilmiştir. Onu bir PHP veri yapısına ayrıştırın. Ayrıştırma başarısız olduysa, ayrıştırma sonucunu veya hatanın nedenini yazdırın.