Σφάλματα parser κατά την ανάλυση 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 'εσφαλμένα bits ή ασυμφωνία λειτουργιών';
    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 απέτυχε.