>  기사  >  백엔드 개발  >  PHP에서 JSON 데이터를 배열로 변환하는 방법

PHP에서 JSON 데이터를 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-19 11:40:54623검색

개발 과정에서 JSON 형식의 데이터를 PHP 배열로 변환해야 하는 경우가 종종 있습니다. 이러한 요구는 프런트 엔드와 상호 작용할 때, 다른 시스템 인터페이스에서 데이터를 수신할 때 매우 일반적입니다. 이 기사에서는 PHP에서 JSON 데이터를 PHP 배열로 변환하는 방법을 소개합니다.

  1. PHP 내장 함수 json_decode()

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 배열로 변환한다는 의미입니다.

  1. 중국어가 포함된 JSON 구문 분석

중국어가 포함된 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
)
  1. JSON 데이터 확인

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를 반환합니다.

  1. JSON 데이터의 가독성

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

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