학습
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,"직업":"개발자"}
코드 한 줄씩 동작 설명
<?php: PHP 코드 블록의 시작입니다.$data = [...];: PHP 배열을 생성하여 사용자 정보를 저장합니다.$json_data = json_encode($data);:json_encode()함수를 사용하여 배열을 JSON 문자열로 변환합니다.echo $json_data;: 변환된 JSON 문자열을 출력합니다.- 상황 설명: 외부 API에서 상품 정보를 가져와서 웹 페이지에 표시합니다.
- 상황 설명: 사용자 정보를 JSON 파일에 저장하여 나중에 쉽게 읽을 수 있도록 합니다.
- 잘못된 코드:
- 올바른 코드:
- 설명: JSON 형식에서는 키와 값이 쌍으로 존재해야 합니다.
- 잘못된 코드:
- 올바른 코드:
- 설명: 기본적으로
json_decode()는 객체로 변환되므로, 배열로 변환해야 하는 경우 두 번째 인자를true로 설정해야 합니다. - JSON은 데이터 전송을 위한 필수 형식입니다.
- PHP에서 JSON을 처리하기 위해
json_encode()와json_decode()함수를 사용합니다. - API와의 데이터 통신 및 사용자 정보를 파일에 저장할 때 유용합니다.
- JSON 형식의 오류와
json_decode()의 사용법에 주의해야 합니다. - PHP에서의 API 통신
- PHP에서의 데이터베이스 연동
- PHP에서의 파일 입출력 처리
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>";
}
?>
예제 2: 사용자 정보 저장
사용자가 입력한 정보를 JSON 형식으로 파일에 저장합니다.
<?php
$user_data = [
"이름" => $_POST['name'],
"이메일" => $_POST['email']
];
file_put_contents('user_data.json', json_encode($user_data, JSON_PRETTY_PRINT)); // 예쁘게 출력
?>
5. 흔한 실수와 주의사항
실수 1: JSON 형식 오류
$data = ["이름" => "홍길동", "나이" => 30, "직업"];
$data = ["이름" => "홍길동", "나이" => 30, "직업" => "개발자"];
실수 2: json_decode() 사용 시 두 번째 인자
$data = json_decode($json_string); // 객체로 변환
$data = json_decode($json_string, true); // 배열로 변환