Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 JSON 값 추출하기: json_decode() 완벽 가이드

PHP에서 JSON 데이터의 특정 값을 가져오는 방법

PHP에서 JSON 문자열에 담긴 값을 꺼내려면 json_decode() 함수를 사용하면 됩니다. 이 함수는 JSON 형식의 문자열을 PHP 배열 또는 객체로 변환해 주기 때문에, 원하는 데이터에 손쉽게 접근할 수 있습니다.

예를 들어 다음과 같은 JSON 데이터가 있다고 가정해 보겠습니다.

$detailsJsonObject = '{"details":[{"name":"John","subjectDetails":{"subjectId":"101","subjectName":"PHP","marks":"58", "teacherName":"Bob"}}]}';

여기서 우리가 필요한 것은 과목명(subjectName), 점수(marks), 교사 이름(teacherName) 같은 특정 값들입니다. 이 값들을 어떻게 추출하는지 예제를 통해 살펴보겠습니다.

예제 코드

아래는 json_decode()를 활용해 JSON에서 원하는 값을 가져오는 전체 PHP 코드입니다.

<!DOCTYPE html>
<html>
<body>
<?php
$detailsJsonObject = '{"details":[
    {"name":"John","subjectDetails":
    {"subjectId":"101","subjectName":"PHP","marks":"58",
    "teacherName":"Bob"}
}]}';

// 두 번째 인자를 true로 지정하면 연관 배열(associative array)로 변환됨
$convertToArrayObject = json_decode($detailsJsonObject, true);

$actualSubjectName = $convertToArrayObject['details'][0]['subjectDetails']['subjectName'];
$actualTeacherName = $convertToArrayObject['details'][0]['subjectDetails']['teacherName'];

echo "과목명은 = ", $actualSubjectName, "<br>";
echo "교사 이름은 = ", $actualTeacherName;
?>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

과목명은 = PHP
교사 이름은 = Bob

핵심 포인트 정리

  • json_decode($json, true): 두 번째 인자를 true로 설정하면 객체 대신 연관 배열 형태로 변환되어 배열 문법으로 값에 접근할 수 있습니다.
  • 중첩 구조 탐색: JSON이 중첩되어 있더라도 [details][0][subjectDetails][subjectName]처럼 키와 인덱스를 순서대로 따라가면 원하는 값에 도달할 수 있습니다.
  • 객체 방식 선호 시: 두 번째 인자를 생략하면 stdClass 객체로 변환되며, 이 경우 ->details[0]->subjectDetails->subjectName 형태로 접근합니다.

이처럼 json_decode() 하나만 제대로 이해하면 복잡한 구조의 JSON 데이터도 손쉽게 다룰 수 있습니다. API 응답 처리나 외부 데이터 연동 시 자주 사용되는 필수 함수이니 꼭 익혀두시기 바랍니다.