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

PHP에서 JSON을 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-20 10:07:08510검색

PHP에서는 JSON을 배열로 변환하는 것이 일반적인 작업입니다. JSON은 가독성과 이식성으로 인해 개발자들 사이에서 점점 인기를 얻고 있는 경량 데이터 교환 형식입니다. JSON 처리에 PHP를 사용하는 경우 PHP의 내장 함수를 사용하여 JSON 데이터를 배열로 변환할 수 있습니다. 이번 글에서는 PHP를 사용하여 JSON을 배열로 변환하는 방법을 알아 보겠습니다.

  1. JSON을 배열로 변환하려면 json_decode() 함수를 사용하세요.

PHP는 JSON 데이터를 PHP 배열로 변환할 수 있는 "json_decode()"라는 함수를 제공합니다. 이 함수는 두 개의 매개변수를 사용합니다. 첫 번째는 변환하려는 JSON 문자열이고, 두 번째는 JSON을 연관 배열로 변환할지 여부를 지정하는 선택적 부울 매개변수입니다. 기본적으로 이 매개변수의 값은 false입니다. 이는 일반 배열이 반환됨을 의미합니다.

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

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York"
}';

json_decode() 함수를 호출하여 이 JSON 문자열을 연관 배열로 변환합니다.

$array = json_decode($json_string, true);

이제 다음 키에 액세스하여 JSON 데이터의 값을 얻을 수 있습니다. 배열, 예:

echo $array['name']; // 输出:John
echo $array['age']; // 输出:30
echo $array['city']; // 输出:New York
  1. JSON 중국어 구문 분석 지원

JSON 문자열에 중국어 문자가 포함된 경우 이를 올바르게 구문 분석하려면 특수 처리가 필요합니다. PHP 내장 함수 json_decode()配合json_last_error_msg()를 사용하여 이 문제를 해결할 수 있습니다.

$json_string = '{"中文": "这是一个中文字符串"}';
$array = json_decode($json_string, true);

if (json_last_error() === JSON_ERROR_UTF8) {
    $json_string = mb_convert_encoding($json_string, 'UTF-8', 'UTF-8');
    $array = json_decode($json_string, true);
}

echo $array['中文']; // 输出:这是一个中文字符串
  1. JSON 문자열에는 여러 수준의 중첩이 있습니다.

JSON 데이터에 여러 수준의 중첩이 있는 경우 재귀 방법을 사용하여 JSON을 다차원 배열로 변환할 수 있습니다. 아래와 같이:

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York",
  "children": [
    {
      "name": "Mary",
      "age": 5
    },
    {
      "name": "Bob",
      "age": 3
    }
  ]
}';
$array = json_decode($json_string, true);

function json_to_array($data) {
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    if (is_array($data)) {
        return array_map(__FUNCTION__, $data);
    } else {
        return $data;
    }
}

$array = json_to_array($array);

print_r($array); // 输出:
/*
Array
(
    [name] => John
    [age] => 30
    [city] => New York
    [children] => Array
        (
            [0] => Array
                (
                    [name] => Mary
                    [age] => 5
                )

            [1] => Array
                (
                    [name] => Bob
                    [age] => 3
                )

        )

)
*/

이 기사에서는 JSON을 배열로 변환하는 몇 가지 방법을 소개했습니다. 간단한 JSON 문자열이든 다중 계층 중첩 JSON 데이터이든 관계없이 PHP의 json_decode() 함수는 구문 분석 작업을 매우 잘 완료할 수 있습니다. 이 기사가 PHP를 사용하여 JSON 데이터를 더 잘 처리하는 데 도움이 되기를 바랍니다.

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

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