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

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

PHPz
PHPz원래의
2023-04-25 17:35:39972검색

PHP 개발에서는 데이터 처리를 용이하게 하기 위해 JSON 문자열을 배열이나 객체로 변환해야 하는 경우가 많습니다. JSON(JavaScript Object Notation)은 JavaScript와 유사한 구문을 사용하고 다양한 프로그래밍 언어 및 프레임워크로 쉽게 구문 분석하고 생성할 수 있는 경량 데이터 교환 형식입니다.

PHP에서는 json_decode() 함수를 사용하여 JSON 문자열을 PHP 배열 또는 객체로 변환할 수 있습니다. 이 함수의 구문은 다음과 같습니다.

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

매개변수 설명:

  • $json은 구문 분석할 JSON 문자열입니다.
  • $assoc은 변환된 데이터 유형을 나타내는 선택적 매개변수입니다. true로 설정하면 연관 배열이 반환되고, false(기본값)로 설정하면 개체가 반환됩니다.
  • $length는 최대 재귀 깊이를 나타내는 선택적 매개변수입니다. 기본값은 512입니다.
  • $options는 JSON을 구문 분석할 때 옵션을 나타내는 선택적 매개변수입니다. 기본값은 0입니다.

다음으로 JSON 문자열을 PHP 배열이나 개체로 변환하는 방법을 살펴보겠습니다.

예제 1: JSON 문자열을 PHP 배열로 변환

$jsonStr = '{"name":"John", "age":30, "city":"New York"}';
$assocArr = json_decode($jsonStr, true);

print_r($assocArr);

출력 결과:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

위의 예에서는 json_decode() 함수를 사용하여 JSON 문자열을 연관 배열로 변환합니다. $assoc 매개변수가 true로 설정되면 연관 배열이 반환되고, 그렇지 않으면 개체가 반환됩니다.

예제 2: JSON 문자열을 PHP 개체로 변환

$jsonStr = '{"name":"John", "age":30, "city":"New York"}';
$obj = json_decode($jsonStr);

echo $obj->name . "\n";
echo $obj->age . "\n";
echo $obj->city . "\n";

출력 결과:

John
30
New York

위의 예에서는 json_decode() 함수를 사용하여 JSON 문자열을 개체로 변환합니다. $assoc 매개변수가 true로 설정되지 않은 경우(또는 매개변수가 전달되지 않은 경우) 객체가 반환되고, 그렇지 않으면 연관 배열이 반환됩니다.

예 3: 구문 분석 오류가 있는 JSON 문자열 처리

때때로 비표준 JSON 문자열이 있거나 JSON 문자열에 잘못된 데이터가 포함되어 있는 경우가 있습니다. json_decode() 함수를 직접 사용하면 예외가 발생하거나 false가 반환됩니다. 이 경우 try-catch 문을 사용하여 예외를 처리하거나 두 번째 선택적 매개변수를 사용하여 구문 분석이 성공했는지 감지할 수 있습니다.

$jsonStr = '{"name":"John", "age":30, "city":"New York}';
$array = json_decode($jsonStr, true);

if ($array === null) {
    echo '解析JSON失败:' . json_last_error_msg() . "\n";
}

출력 결과:

解析JSON失败:Syntax error

위의 예에서는 JSON 문자열의 끝 중괄호를 의도적으로 삭제하여 잘못된 JSON 문자열로 만들었습니다. 두 번째 선택적 매개변수를 사용하면 구문 분석이 성공했는지 여부를 감지할 수 있습니다. null이 반환되면 구문 분석이 실패한 것입니다. 이때 json_last_error_msg() 함수를 사용하면 구문 분석 실패의 구체적인 이유를 얻을 수 있습니다.

요약

위의 예를 통해 PHP에서 JSON 문자열을 배열이나 객체로 변환하는 것은 매우 간단하다는 것을 알 수 있습니다. 단지 json_decode() 함수를 사용하면 됩니다. JSON 문자열이 표준화되지 않은 경우 구문 분석 실패가 발생할 수도 있습니다. try-catch 문을 사용하여 예외를 처리하거나 두 번째 선택적 매개 변수를 사용하여 구문 분석 성공 여부를 감지할 수 있습니다.

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

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