PHP 개발 과정에서 Json 문자열을 객체와 배열로 변환하는 것은 일반적인 작업입니다. Json은 데이터 형식인 반면, PHP는 json_decode() 함수를 통해 Json 문자열을 PHP 개체 및 배열로 변환할 수 있는 프로그래밍 언어입니다. 이 기사에서는 Json 문자열을 사용하는 가장 일반적인 방법 중 하나를 사용하여 Json 문자열을 PHP 연관 배열 및 객체로 변환하는 방법을 알아봅니다.
Json 문자열을 PHP 개체 및 배열로 변환하는 방법을 배우기 전에 먼저 Json 문자열 형식을 검토해 보겠습니다. Json 문자열은 키-값 쌍의 형태로 데이터를 저장하는 텍스트 데이터입니다. 각 키-값 쌍은 "키"와 "값"으로 구성됩니다. "키"는 큰따옴표로 묶입니다. "값"은 숫자 값, 문자열, 부울 값, Json일 수 있습니다. 객체 또는 Json 배열.
다음은 Json 문자열의 예입니다.
{ "name": "张三", "age": 25, "gender": "男", "address": { "province": "北京", "city": "朝阳区", "street": "和平路" }, "hobbies": [ "篮球", "游泳", "旅游" ] }
위의 예에서 "이름", "나이", "성별", "주소" 및 "취미"는 이 Json 문자열의 "키"입니다. 각각 '장산', '25', '남성', '주소', '취미'에 해당합니다. 그 중 "address"는 Json 객체이고 "hobbies"는 Json 배열입니다.
PHP에서 Json 문자열을 배열로 변환하는 방법은 json_decode() 함수를 사용하는 것입니다. json_decode() 함수의 구문은 다음과 같습니다.
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
그 중 $json 매개변수는 변환할 Json 문자열이고, $assoc 매개변수는 Json 객체를 PHP 연관 배열로 변환할지 여부를 나타냅니다(true는 의미함) PHP 연관 배열로 변환, false는 PHP 객체로 변환을 의미함) $length 매개변수는 최대 변환 깊이(기본값은 512)를 나타내며 $options 매개변수는 디코딩 중 옵션을 나타냅니다(기본값은 0).
다음은 Json 문자열을 PHP 배열로 변환하는 예입니다.
<?php $json_str = '{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}'; $arr = json_decode($json_str, true); print_r($arr); ?>
위 예에서는 먼저 Json 문자열 $json_str을 정의합니다. json_decode() 함수를 사용하여 $json_str을 PHP 배열로 변환하고 결과를 $arr 변수에 저장합니다. 마지막으로 print_r() 함수를 사용하여 배열의 내용을 출력합니다.
출력 결과는 다음과 같습니다.
Array ( [name] => 张三 [age] => 25 [gender] => 男 [address] => Array ( [province] => 北京 [city] => 朝阳区 [street] => 和平路 ) [hobbies] => Array ( [0] => 篮球 [1] => 游泳 [2] => 旅游 ) )
Json 문자열을 PHP 배열로 변환하는 것 외에도 PHP 객체로 변환할 수도 있습니다. 이 프로세스는 json_decode() 함수를 사용하여 구현할 수도 있습니다. 두 번째 매개변수를 false로 설정하거나 생략하면 됩니다.
Json 문자열을 PHP 개체로 변환하는 예는 다음과 같습니다.
<?php $json_str = '{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}'; $obj = json_decode($json_str); print_r($obj); ?>
위 예에서는 두 번째 매개 변수를 false로 설정하고 결과가 PHP 개체로 변환됩니다.
출력 결과는 다음과 같습니다.
stdClass Object ( [name] => 张三 [age] => 25 [gender] => 男 [address] => stdClass Object ( [province] => 北京 [city] => 朝阳区 [street] => 和平路 ) [hobbies] => Array ( [0] => 篮球 [1] => 游泳 [2] => 旅游 ) )
Json 문자열에 개체가 포함되어 있고 PHP 연관 배열로 변환해야 하는 경우 먼저 이를 다음으로 변환할 수 있습니다. PHP 객체를 생성한 다음 typecast() 함수를 사용하여 연관 배열로 변환합니다.
다음은 Json 문자열의 개체를 PHP 연관 배열로 변환하는 예입니다.
<?php $json_str = '{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}'; $obj = json_decode($json_str); $arr = json_decode(json_encode($obj), true); print_r($arr); ?>
위 예에서는 먼저 json_decode() 함수를 사용하여 Json 문자열을 PHP 개체로 변환합니다. 그런 다음 json_encode() 함수를 사용하여 PHP 객체를 Json 문자열로 변환하고 다시 json_decode() 함수를 사용하여 PHP 연관 배열로 변환합니다. 마지막으로 print_r() 함수를 사용하여 배열의 내용을 출력합니다.
출력은 첫 번째 예와 동일합니다.
위 내용은 PHP에서 JSON 문자열을 배열과 객체로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!