PHP에서 JSON 파싱 시 발생하는 파서 오류

json_last_error 함수를 사용하면 JSON 파싱 중 발생한 오류의 종류를 알 수 있습니다. 어떻게 하는지 살펴보겠습니다. 잘못된 JSON이 있다고 가정해 봅시다:

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

이 JSON을 파싱해 보겠습니다:

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을 파싱할 수 없는 경우 오류 원인을 출력하세요.