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

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

PHPz
PHPz원래의
2023-03-23 11:11:571649검색

PHP 개발 과정에서 Json 문자열을 객체와 배열로 변환하는 것은 일반적인 작업입니다. Json은 데이터 형식인 반면, PHP는 json_decode() 함수를 통해 Json 문자열을 PHP 개체 및 배열로 변환할 수 있는 프로그래밍 언어입니다. 이 기사에서는 Json 문자열을 사용하는 가장 일반적인 방법 중 하나를 사용하여 Json 문자열을 PHP 연관 배열 및 객체로 변환하는 방법을 알아봅니다.

Json 문자열 형식

Json 문자열을 PHP 개체 및 배열로 변환하는 방법을 배우기 전에 먼저 Json 문자열 형식을 검토해 보겠습니다. Json 문자열은 키-값 쌍의 형태로 데이터를 저장하는 텍스트 데이터입니다. 각 키-값 쌍은 "키"와 "값"으로 구성됩니다. "키"는 큰따옴표로 묶입니다. "값"은 숫자 값, 문자열, 부울 값, Json일 수 있습니다. 객체 또는 Json 배열.

다음은 Json 문자열의 예입니다.

{
    "name": "张三",
    "age": 25,
    "gender": "男",
    "address": {
        "province": "北京",
        "city": "朝阳区",
        "street": "和平路"
    },
    "hobbies": [
        "篮球",
        "游泳",
        "旅游"
    ]
}

위의 예에서 "이름", "나이", "성별", "주소" 및 "취미"는 이 Json 문자열의 "키"입니다. 각각 '장산', '25', '남성', '주소', '취미'에 해당합니다. 그 중 "address"는 Json 객체이고 "hobbies"는 Json 배열입니다.

Json 문자열을 PHP 배열로 변환

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 = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $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 객체로 변환

Json 문자열을 PHP 배열로 변환하는 것 외에도 PHP 객체로 변환할 수도 있습니다. 이 프로세스는 json_decode() 함수를 사용하여 구현할 수도 있습니다. 두 번째 매개변수를 false로 설정하거나 생략하면 됩니다.

Json 문자열을 PHP 개체로 변환하는 예는 다음과 같습니다.

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $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 배열로 변환

Json 문자열에 개체가 포함되어 있고 PHP 연관 배열로 변환해야 하는 경우 먼저 이를 다음으로 변환할 수 있습니다. PHP 객체를 생성한 다음 typecast() 함수를 사용하여 연관 배열로 변환합니다.

다음은 Json 문자열의 개체를 PHP 연관 배열로 변환하는 예입니다.

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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