2025. 9. 14. 15:01ㆍ프로그램/PHP 고급
#JSON의 #개념과 #특징

#JSON (JavaScript Object Notation)은 #경량의 #데이터 교환 #형식으로, #사람이 읽고 쓰기 쉬우며 기계가 파싱하고 생성하기 쉬운 형태입니다. #JavaScript에서 #객체를 표현하는 방식에 기반을 두고 있지만, 사실상 거의 모든 #프로그래밍 언어에서 지원하며 #RESTful API에서 #가장 널리 사용되는 데이터 형식입니다.
#JSON의 주요 #특징은 다음과 같습니다.
- #객체 (Object): {} 중괄호로 둘러싸이며, #키-값 #쌍의 #비정렬 집합입니다. 키는 #문자열이어야 하며, 값은 모든 #유효한 JSON 데이터 유형이 될 수 있습니다.
-
{ "name": "홍길동", "age": 30 } - JSON
- #배열 (Array): [] 대괄호로 둘러싸이며, #값들의 #정렬된 리스트입니다. 값은 모든 #유효한 JSON 데이터 유형이 될 수 있습니다.
-
JSON
[ "apple", "banana", "cherry" ] - #데이터 유형: #문자열 (큰따옴표로 묶인 유니코드), #숫자 (정수 또는 실수), #불리언 (true/false), #null을 지원합니다.
#PHP에서 #JSON #데이터 다루기

#PHP는 #JSON 데이터를 손쉽게 다룰 수 있도록 #내장 함수를 제공합니다. 주로 다음 두 가지 함수가 사용됩니다.
1. json_encode(): #PHP #데이터를 #JSON #문자열로 #변환
이 함수는 #PHP의 #배열이나 #객체를 #JSON 형식의 #문자열로 변환합니다.
<?php
$data = [
'name' => '김철수',
'age' => 25,
'hobbies' => ['reading', 'coding'],
'isStudent' => true
];
$json_string = json_encode($data);
echo $json_string;
// 결과: {"name":"김철수","age":25,"hobbies":["reading","coding"],"isStudent":true}
$object_data = new stdClass();
$object_data->title = "PHP 고급 강의";
$object_data->duration = "4주차";
$json_object_string = json_encode($object_data);
echo $json_object_string;
// 결과: {"title":"PHP 고급 강의","duration":"4주차"}
?>
json_encode() 함수는 두 번째 인자로 다양한 #옵션을 받을 수 있습니다. 예를 들어, JSON_PRETTY_PRINT 옵션을 사용하면 가독성 좋게 #들여쓰기된 #JSON 문자열을 얻을 수 있습니다.
<?php
$data = ['item1' => 'value1', 'item2' => 'value2'];
echo json_encode($data, JSON_PRETTY_PRINT);
/* 결과:
{
"item1": "value1",
"item2": "value2"
}
*/
?>
2. json_decode(): #JSON #문자열을 #PHP #데이터로 #변환
이 함수는 #JSON 형식의 #문자열을 #PHP의 #배열이나 #객체로 변환합니다.
<?php
$json_string = '{"name":"박영희","age":30,"city":"Seoul"}';
// 두 번째 인자가 true이면 연관 배열로 변환
$data_array = json_decode($json_string, true);
print_r($data_array);
/* 결과:
Array
(
[name] => 박영희
[age] => 30
[city] => Seoul
)
*/
// 두 번째 인자가 없거나 false이면 객체로 변환 (기본값)
$data_object = json_decode($json_string);
print_r($data_object);
/* 결과:
stdClass Object
(
[name] => 박영희
[age] => 30
[city] => Seoul
)
*/
echo $data_object->name; // 박영희
echo $data_array['city']; // Seoul
?>
json_decode() 함수 사용 시 #오류 처리도 중요합니다. json_last_error() 함수를 사용하여 마지막으로 발생한 JSON 오류 코드를 확인할 수 있습니다.
<?php
$malformed_json = '{"name": "잘못된 JSON", "age":}'; // 문법 오류
$data = json_decode($malformed_json);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "JSON 디코딩 오류: " . json_last_error_msg();
}
// 결과: JSON 디코딩 오류: Syntax error
?>
#API #통신에서 #JSON #활용

#RESTful API에서 클라이언트와 서버는 주로 #JSON을 사용하여 데이터를 주고받습니다.
- #요청 본문 (Request Body): 클라이언트가 서버로 데이터를 보낼 때, POST나 PUT, PATCH 요청의 본문에 #JSON 형식으로 데이터를 담아 보냅니다. 이때 HTTP 헤더 Content-Type: application/json을 명시하여 서버에 JSON 데이터임을 알려줍니다.
- #응답 본문 (Response Body): 서버가 클라이언트에 데이터를 보낼 때, 응답 본문에 #JSON 형식으로 데이터를 담아 보냅니다. 이때 HTTP 헤더 Content-Type: application/json을 명시하여 클라이언트에 JSON 데이터임을 알려줍니다.
#PHP에서 이러한 흐름을 처리하려면, 들어오는 #JSON 데이터를 file_get_contents('php://input')으로 읽은 후 json_decode()하고, 나가는 데이터는 json_encode()하여 header('Content-Type: application/json')과 함께 출력합니다.
#JSON은 #간결하고 #유연하며 #읽기 쉬운 형식으로, 현대 #웹 애플리케이션에서 #데이터 교환의 표준으로 자리매김했습니다. PHP 개발자로서 JSON을 효과적으로 다루는 능력은 RESTful API 개발에 있어 필수적입니다.
PHP 고급 RESTful API 개발 기초 JSON 데이터 형식 다루기 개념 특징 PHP JSON 데이터 다루기 json_encode json_decode API 통신 JSON 활용
고품질 착한가격 통신사IP 고정IP 안전한VPN 초고속VPN / 게임,광고,우회용
VPN 5,500원 / IP교체 1,100원 / 유동프록시 22,000원 | LuzenVPN 루젠VPN
국내최저가 고정IP서비스,유동프록시(IP4000개이상제공),PPTP,L2TP,IPSec,OpenVPNVPN,통신사VPN,VPN프로그램,고정IP,고정아이피,PPTP,저렴한VPN,리니지MVPN,리니지VPN,아이온VPN,던파VPN,유동프록시,유동PROXY,바이
vpn.luzensoft.com
'프로그램 > PHP 고급' 카테고리의 다른 글
| 📚 PHP 고급 - 5주차: RESTful API 보안 및 인증 - 01 API 키, 토큰 기반 인증 (JWT) (0) | 2025.09.14 |
|---|---|
| 📚 PHP 고급 - 4주차: RESTful API 개발 기초 - 04 Postman 등 API 테스트 도구 활용 (0) | 2025.09.14 |
| 📚 PHP 고급 - 4주차: RESTful API 개발 기초 - 02 API 엔드포인트 설계 (0) | 2025.09.14 |
| 📚 PHP 고급 - 4주차: RESTful API 개발 기초 - 01 RESTful API 개념과 원칙 (0) | 2025.09.14 |
| 📚 PHP 고급 - 3주차: 인증 및 권한 관리 (프레임워크) - 03 역할 기반 권한 관리 (Role-Based Access Control) (0) | 2025.09.14 |