>  기사  >  백엔드 개발  >  PHP에서 json 객체를 문자열 배열 객체로 변환하는 방법

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

PHPz
PHPz원래의
2023-04-18 09:48:18432검색

PHP에서 json_decode 함수는 JSON 문자열을 PHP의 개체 또는 배열로 구문 분석할 수 있는 반면, json_encode 함수는 PHP 개체 또는 배열을 JSON 문자열로 변환할 수 있습니다. 하지만 때로는 JSON 객체를 문자열 배열 객체로 변환해야 할 때도 있습니다. 어떻게 해야 할까요?

JSON 문자열이 다음과 같다고 가정해 보겠습니다.

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}

다음 PHP 코드를 사용하여 이를 문자열 배열 객체로 변환할 수 있습니다.

$json = '{"name":"Tom","age":18,"hobbies":["reading","running","swimming"]}';
$data = json_decode($json, true);

$keys = array_keys($data);
$values = array_values($data);

$str_arr = [];
for ($i = 0; $i < count($keys); $i++) {
    if (is_array($values[$i])) {
        $str_arr[$keys[$i]] = json_encode($values[$i]);
    } else {
        $str_arr[$keys[$i]] = (string) $values[$i];
    }
}

var_dump($str_arr);

먼저 JSON 문자열을 json_decode 함수에 전달하고 두 번째로 이 매개변수를 true로 설정하는 것은 의미합니다. 구문 분석된 JSON을 연관 배열로 변환합니다.

다음으로 array_keys 함수를 사용하여 연관 배열의 키 이름을 가져오고, array_values ​​함수를 사용하여 연관 배열의 값을 가져옵니다.

그런 다음 for 루프를 통해 모든 키 이름과 값을 반복하고 값이 배열인지 확인합니다. 값이 배열이면 json_encode 함수를 사용하여 JSON 문자열로 변환하고, 배열이 아닌 경우 캐스트를 사용하여 문자열로 변환합니다.

마지막으로 키 이름을 키로, 문자열을 값으로 사용하여 새로운 연관 배열을 만듭니다. var_dump 함수를 사용하여 결과를 출력하면 다음과 같은 출력을 얻을 수 있습니다.

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "18"
  ["hobbies"]=>
  string(28) "["reading","running","swimming"]"
}

보시다시피 JSON 개체를 문자열 배열 개체로 성공적으로 변환했습니다. 그중 핵심 단계는 json_encode 함수를 사용하여 배열을 JSON 문자열로 변환하는 것입니다.

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

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