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

PHP에서 중첩 JSON 객체 생성하기

PHP에서 중첩된(nested) JSON 구조를 만들려면 다차원 배열json_encode() 함수를 함께 사용하면 됩니다. 배열 안에 또 다른 연관 배열을 포함시키면, 인코딩 과정에서 자동으로 중첩 JSON 객체 형태로 변환됩니다.

기본 예제

아래 코드처럼 배열을 구성한 뒤 json_encode() 함수에 전달하면 원하는 JSON 구조를 손쉽게 생성할 수 있습니다.

$json = json_encode(array(
    "client" => array(
        "build" => "1.0",
        "name" => "xxxx",
        "version" => "1.0"
    ),
    "protocolVersion" => 4,
    "data" => array(
        "distributorId" => "xxxx",
        "distributorPin" => "xxxx",
        "locale" => "en-US"
    )
));

위 코드의 실행 결과는 다음과 같은 JSON 문자열입니다.

{"client":{"build":"1.0","name":"xxxx","version":"1.0"},"protocolVersion":4,"data":{"distributorId":"xxxx","distributorPin":"xxxx","locale":"en-US"}}

보기 좋게 출력하기

두 번째 인자로 JSON_PRETTY_PRINT 옵션을 추가하면 들여쓰기와 줄바꿈이 적용되어 사람이 읽기 쉬운 형태로 출력됩니다.

$json = json_encode($array, JSON_PRETTY_PRINT);

알아두면 좋은 점

  • json_encode()는 UTF-8로 인코딩된 문자열만 처리할 수 있으므로, 한글 같은 멀티바이트 문자를 다룰 때는 인코딩 설정에 주의해야 합니다.
  • 생성된 JSON 문자열을 다시 PHP 배열이나 객체로 되돌리려면 json_decode() 함수를 사용하면 됩니다.
  • 중첩 깊이는 기본적으로 512단계까지 지원하며, 필요하다면 세 번째 인자로 깊이를 조절할 수 있습니다.