IMCAT.DEV
로그인 가입
PHP 중급 자료구조

PHP PHP에서의 JSON 처리

PHP PHP에서의 JSON 처리 — 중급

PHP에서의 JSON 처리

1. 도입 (왜 배워야 하는가)

JSON(JavaScript Object Notation)은 웹 애플리케이션에서 데이터를 전송하는 데 있어 가장 널리 사용되는 형식입니다. PHP에서 JSON을 처리하는 능력은 API와의 통신, 데이터 저장 및 전송, 클라이언트-서버 간의 상호작용을 원활하게 하기 위해 필수적입니다. 예를 들어, 쇼핑몰 웹사이트에서 사용자가 장바구니에 담은 상품 정보를 클라이언트와 서버 간에 전송할 때 JSON 형식을 사용하면 데이터가 더 가볍고 직관적으로 처리될 수 있습니다.

JSON을 모른다면, 다양한 웹 서비스와의 연동이 어려워지고, 데이터의 형식을 맞추는 데 많은 시간을 소모하게 될 것입니다. 결국, 실효성이 떨어져 사용자 경험에 악영향을 미치게 됩니다.

2. 핵심 개념 설명

JSON (JavaScript Object Notation)

  • 정의: 데이터 구조를 표현하기 위한 경량의 텍스트 기반 형식입니다. 주로 데이터 교환 형식으로 사용됩니다.
  • 비유: JSON은 마치 상자에 담긴 물건처럼, 그 안에 다양한 유형의 정보를 깔끔하게 정리해 놓은 것입니다. 상자를 열면 쉽게 물건을 꺼낼 수 있듯이, JSON 형식도 쉽게 정보를 추출할 수 있습니다.
  • PHP JSON 함수

    함수명설명
    json_encode()PHP 배열이나 객체를 JSON 문자열로 변환
    json_decode()JSON 문자열을 PHP 배열이나 객체로 변환

    3. 기본 코드 예제

    다음은 PHP에서 JSON을 사용하는 가장 기본적인 예제입니다.

    <?php
    // PHP 배열 생성
    $data = [
        "이름" => "홍길동",
        "나이" => 30,
        "직업" => "개발자"
    ];
    
    // 배열을 JSON 문자열로 변환
    $json_data = json_encode($data);
    
    // 변환된 JSON 문자열 출력
    echo $json_data;
    ?>

    실행 결과

    {"이름":"홍길동","나이":30,"직업":"개발자"}

    코드 한 줄씩 동작 설명

    1. <?php: PHP 코드 블록의 시작입니다.
    2. $data = [...];: PHP 배열을 생성하여 사용자 정보를 저장합니다.
    3. $json_data = json_encode($data);: json_encode() 함수를 사용하여 배열을 JSON 문자열로 변환합니다.
    4. echo $json_data;: 변환된 JSON 문자열을 출력합니다.
    5. 4. 실전 활용 예제

      예제 1: API에서 데이터 가져오기

      쇼핑몰에서 상품 목록을 외부 API에서 가져올 때 JSON을 사용합니다.

      <?php
      $response = file_get_contents("https://api.example.com/products");
      $products = json_decode($response, true); // JSON 문자열을 PHP 배열로 변환
      
      foreach ($products as $product) {
          echo "상품명: " . $product['name'] . ", 가격: " . $product['price'] . "<br>";
      }
      ?>
    6. 상황 설명: 외부 API에서 상품 정보를 가져와서 웹 페이지에 표시합니다.
    7. 예제 2: 사용자 정보 저장

      사용자가 입력한 정보를 JSON 형식으로 파일에 저장합니다.

      <?php
      $user_data = [
          "이름" => $_POST['name'],
          "이메일" => $_POST['email']
      ];
      
      file_put_contents('user_data.json', json_encode($user_data, JSON_PRETTY_PRINT)); // 예쁘게 출력
      ?>
    8. 상황 설명: 사용자 정보를 JSON 파일에 저장하여 나중에 쉽게 읽을 수 있도록 합니다.
    9. 5. 흔한 실수와 주의사항

      실수 1: JSON 형식 오류

    10. 잘못된 코드:
    11.   $data = ["이름" => "홍길동", "나이" => 30, "직업"];
    12. 올바른 코드:
    13.   $data = ["이름" => "홍길동", "나이" => 30, "직업" => "개발자"];
    14. 설명: JSON 형식에서는 키와 값이 쌍으로 존재해야 합니다.
    15. 실수 2: json_decode() 사용 시 두 번째 인자

    16. 잘못된 코드:
    17.   $data = json_decode($json_string); // 객체로 변환
    18. 올바른 코드:
    19.   $data = json_decode($json_string, true); // 배열로 변환
    20. 설명: 기본적으로 json_decode()는 객체로 변환되므로, 배열로 변환해야 하는 경우 두 번째 인자를 true로 설정해야 합니다.
    21. 6. 정리

    22. JSON은 데이터 전송을 위한 필수 형식입니다.
    23. PHP에서 JSON을 처리하기 위해 json_encode()와 json_decode() 함수를 사용합니다.
    24. API와의 데이터 통신 및 사용자 정보를 파일에 저장할 때 유용합니다.
    25. JSON 형식의 오류와 json_decode()의 사용법에 주의해야 합니다.
    26. 추천 주제

    27. PHP에서의 API 통신
    28. PHP에서의 데이터베이스 연동
    29. PHP에서의 파일 입출력 처리