개발 과정에서 JSON 형식의 데이터를 PHP 배열로 변환해야 하는 경우가 종종 있습니다. 이러한 요구는 프런트 엔드와 상호 작용할 때, 다른 시스템 인터페이스에서 데이터를 수신할 때 매우 일반적입니다. 이 기사에서는 PHP에서 JSON 데이터를 PHP 배열로 변환하는 방법을 소개합니다.
PHP에는 JSON 형식 문자열을 PHP 배열로 변환할 수 있는 내장 함수 json_decode()가 있습니다. 다음은 json_decode() 함수를 사용한 예입니다.
$json = '{"name":"john","age":30,"city":"New York"}'; $array = json_decode($json, true); print_r($array);
출력 결과는 다음과 같습니다.
Array ( [name] => john [age] => 30 [city] => New York )
위 예에서 $json은 JSON 형식의 문자열이고, json_decode를 사용하여 $json을 변환한 후 $array를 얻습니다. () 함수 PHP 배열. json_decode() 함수의 두 번째 매개변수는 true여야 하며, 이는 변환된 JSON 객체를 PHP 배열로 변환한다는 의미입니다.
중국어가 포함된 JSON 데이터를 처리할 때 문자 인코딩 문제에 주의해야 합니다. 그렇지 않으면 변환 과정에서 오류가 발생할 수 있습니다.
아래와 같이 중국어가 포함된 JSON 문자열이 있다고 가정합니다.
$json = '{"name":"张三","age":30}';
위 코드를 사용하여 JSON 문자열을 PHP 배열로 변환하면 "json_decode(): 입력 문자열에 잘못된 내용이 포함되어 있습니다"라는 알림 오류가 생성됩니다. UTF-8 문자'(JSON 문자열에 잘못된 UTF-8 문자가 포함되어 있음).
json_decode() 함수는 기본적으로 UTF-8 인코딩만 지원하고 JSON 문자열의 한자는 GBK나 다른 인코딩 방식으로 인코딩되기 때문에 먼저 UTF-8 인코딩으로 변환해야 하고, 그런 다음 JSON 변환을 수행합니다.
PHP 내장 함수 iconv()를 사용하여 문자열을 GBK에서 UTF-8 인코딩으로 변환합니다.
$json = '{"name":"张三","age":30}'; $json_utf8 = iconv('GBK', 'UTF-8//IGNORE', $json); $array = json_decode($json_utf8, true); print_r($array);
결과 출력은 다음과 같습니다.
Array ( [name] => 张三 [age] => 30 )
JSON 데이터를 변환할 때 때로는 우리가 기대하는 구조와 형식에 맞는지 확인해야 합니다.
PHP에는 마지막 JSON 변환 작업으로 생성된 오류 코드를 얻을 수 있는 내장 함수 json_last_error()가 있습니다. 오류 코드를 기반으로 JSON 데이터가 기대치를 충족하는지 여부를 판단할 수 있습니다.
예를 들어 다음 코드는 변환 시 잘못된 JSON 문자열이 예상한 것과 같은지 확인하는 방법을 보여줍니다.
$json = '{"name":"john","age":30,}, {"name":"mike","age":32}'; $array = json_decode($json, true); if (json_last_error() === JSON_ERROR_NONE) { echo 'JSON 格式正确'; } else { echo 'JSON 格式错误'; }
위 코드에서 $json에는 쉼표로 구분되지 않은 두 개의 JSON 개체가 포함되어 있는데 이는 JSON 형식 오류입니다. 따라서 json_last_error() 함수는 JSON 구문 오류를 나타내는 JSON_ERROR_SYNTAX를 반환합니다.
JSON 데이터를 처리할 때 디버깅 및 읽기를 용이하게 하기 위해 JSON 데이터에 들여쓰기 및 줄 바꿈과 같은 형식을 추가하여 읽기 쉽게 만들 수도 있습니다.
PHP 내장 함수 json_encode()는 PHP 배열을 읽을 수 있는 JSON 형식 문자열로 변환할 수 있습니다. 예:
$array = [ 'name' => 'john', 'age' => 30, 'city' => 'New York' ]; $json = json_encode($array, JSON_PRETTY_PRINT); echo $json;
출력 결과는 다음과 같습니다.
{ "name": "john", "age": 30, "city": "New York" }
위 코드에서 $array를 JSON 형식의 문자열로 변환한 후 JSON_PRETTY_PRINT 매개변수를 전달합니다. 이는 JSON 문자열을 들여쓰기하고 래핑하여 가독성을 향상시키는 것을 의미합니다. .
json_encode() 함수의 JSON_PRETTY_PRINT 매개변수는 PHP 버전 5.4 이상에서만 지원된다는 점에 유의하세요.
요약
PHP에서는 내장 함수 json_decode()를 사용하여 JSON 형식의 문자열을 PHP 배열로 변환할 수 있습니다. 중국어가 포함된 JSON 데이터를 처리할 때 JSON 데이터를 변환할 때 문자 인코딩 문제에 주의해야 합니다. JSON 데이터를 생성할 때 기대에 부응하는지 확인해야 하며 json_encode() 함수를 사용하여 가독성을 최적화할 수 있습니다.
위 내용은 JSON을 PHP 배열로 변환하는 방법입니다. 실제 개발에 도움이 되셨으면 좋겠습니다.
위 내용은 PHP에서 JSON 데이터를 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!