>백엔드 개발 >PHP 문제 >PHP에서 JSON 문자열 배열을 객체 배열로 변환하는 방법

PHP에서 JSON 문자열 배열을 객체 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-23 09:18:45508검색

PHP에서는 데이터를 처리하고 사용할 수 있도록 JSON 문자열 배열을 객체 배열로 변환해야 하는 경우가 많습니다. 이 작업을 수행하기 위해 PHP에서 제공되는 json_decode() 함수를 사용하여 JSON 문자열을 구문 분석한 다음 이를 객체 배열로 변환할 수 있습니다.

아래는 JSON 문자열 배열을 객체 배열로 변환하는 예입니다.

$json = '[
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30},
    {"name": "Charlie", "age": 35}
]';

$people = json_decode($json);

foreach ($people as $person) {
    echo $person->name . ' is ' . $person->age . ' years old.' . PHP_EOL;
}

이 예에서는 먼저 JSON 문자열 배열을 정의합니다. 그런 다음 json_decode() 함수를 호출하여 이를 PHP 객체로 변환했습니다. 마지막으로 foreach 루프를 사용하여 개체 배열을 반복하고 각 사람의 이름과 나이를 출력합니다.

json_decode() 함수는 JSON 문자열을 stdClass 유형의 익명 객체 또는 특정 클래스의 객체일 수 있는 PHP 객체로 구문 분석한다는 점에 유의해야 합니다. 이 예에서는 JSON 문자열이 어떤 유형의 객체로 구문 분석되는지 지정하지 않았으므로 기본적으로 stdClass 유형의 객체로 구문 분석됩니다.

JSON 문자열을 특정 클래스의 객체로 구문 분석하려면 두 번째 매개변수를 json_decode() 함수에 전달하면 됩니다. 예를 들어, 각 사람의 정보를 나타내는 Person 클래스를 정의한 다음 아래와 같이 JSON 문자열을 Person 객체의 배열로 구문 분석할 수 있습니다.

class Person {
    public $name;
    public $age;
    
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$json = '[
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30},
    {"name": "Charlie", "age": 35}
]';

$people = json_decode($json, false);

$personObjects = array();
foreach($people as $person) {
    $personObjects[] = new Person($person->name, $person->age);
}

foreach ($personObjects as $person) {
    echo $person->name . ' is ' . $person->age . ' years old.' . PHP_EOL;
}

이 예에서는 먼저 Person이라는 클래스를 정의합니다. 연령 속성과 생성자. 다음으로 JSON 문자열을 객체 배열로 구문 분석하고 이를 Person 객체 배열로 변환합니다. 마지막으로 foreach 루프를 사용하여 각 사람의 이름과 나이를 출력합니다.

간단히 말하면 JSON 문자열 배열을 객체 배열로 변환하는 것은 PHP의 일반적인 작업 중 하나입니다. 이 작업을 수행하기 위해 json_decode() 함수를 사용할 수 있으며, 두 번째 매개변수를 전달하여 구문 분석할 객체 유형을 지정할 수 있습니다. 이 작업을 완료한 후에는 이를 사용하여 데이터를 처리하고 운영하고 사용할 수 있습니다.

위 내용은 PHP에서 JSON 문자열 배열을 객체 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.