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

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

PHPz
풀어 주다: 2023-03-21 11:50:01
원래의
1745명이 탐색했습니다.

현대 웹 개발에서는 데이터 전송과 변환이 필요한 경우가 많습니다. 그 중 JSON(JavaScript Object Notation)은 가볍고 쓰기 쉬운 데이터 교환 형식으로 웹 개발에서 가장 일반적으로 사용되는 데이터 형식 중 하나가 되었습니다. PHP 개발에서는 json_decode() 함수를 사용하여 JSON 문자열을 PHP 객체로 변환할 수 있습니다. 이 글에서는 json 문자열을 PHP 객체로 변환하는 구현 방법을 소개합니다.

  1. json_decode() 함수

json_decode()는 PHP에서 일반적으로 사용되는 함수입니다. JSON 형식 문자열을 디코딩하여 PHP 객체 또는 배열로 변환하는 데 사용됩니다. 기본 구문은 다음과 같습니다.

mixed json_decode(string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]])
로그인 후 복사

그 중 $json 매개변수는 디코딩이 필요한 JSON 형식 문자열이고, $assoc 매개변수는 JSON 문자열을 연관 배열로 변환할지 여부를 나타냅니다. 기본값은 false입니다. 즉, 객체로 변환한다는 의미입니다. $length는 객체 또는 배열의 최대 깊이를 지정하며 기본값은 512입니다. $options는 디코더에 전달되는 다른 옵션입니다.

예를 들어 JSON 형식의 다음 문자열이 있습니다.

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "swimming", "traveling"],
    "address": {
        "country": "China",
        "province": "Beijing",
        "city": "Beijing"
    }
}
로그인 후 복사

이 문자열을 PHP 개체로 변환하려면 json_decode() 함수를 호출하기만 하면 됩니다.

$jsonStr = '{"name":"Tom","age":18,"hobbies":["reading","swimming","traveling"],"address":{"country":"China","province":"Beijing","city":"Beijing"}}';
$phpObj = json_decode($jsonStr);
로그인 후 복사

위 코드를 실행한 후 $phpObj는 PHP 객체의 내용은 원본 JSON 문자열과 일치합니다.

  1. 고급 사용법

실제 개발 중에 특별한 처리가 필요한 일부 JSON 형식 문자열이 발생할 수 있습니다. 아래에서는 몇 가지 고급 사용법을 소개하겠습니다.

1) 유니코드 인코딩으로 JSON 문자열 구문 분석

일부 JSON 문자열에는 다음과 같은 유니코드 인코딩 문자가 포함되어 있습니다.

{
    "name": "\u5f20\u4e09",
    "age": 20,
    "gender": true
}
로그인 후 복사

json_decode() 함수를 사용하여 이러한 문자열을 구문 분석하는 경우 JSON_UNESCAPED_UNICODE 옵션을 지정해야 합니다.

$jsonStr = '{"name":"\u5f20\u4e09","age":20,"gender":true}';
$phpObj = json_decode($jsonStr, false, 512, JSON_UNESCAPED_UNICODE);
로그인 후 복사

2) 주석이 포함된 JSON 문자열 구문 분석

일부 JSON 형식 문자열에는 주석이 있습니다. 예:

{
    // 个人信息
    "name": "Tom",
    "age": 18,
    /* 爱好 */
    "hobbies": [
        "reading",
        "swimming",
        "traveling"
    ]
}
로그인 후 복사

json_decode() 함수를 사용하여 이러한 문자열을 구문 분석하는 경우 먼저 주석을 제거한 다음 구문 분석을 진행해야 합니다. 다음은 간단한 구현입니다.

function remove_json_comments($jsonStr) {
    return preg_replace('/^\s*(\/\/.*)$/m', '', $jsonStr);
}

$jsonStr = '
{
    // 个人信息
    "name": "Tom",
    "age": 18,
    /* 爱好 */
    "hobbies": [
        "reading",
        "swimming",
        "traveling"
    ]
}
';
$phpObj = json_decode(remove_json_comments($jsonStr));
로그인 후 복사

3) 특수 문자로 JSON 문자열을 구문 분석합니다.

JSON 문자열에서는 큰따옴표, 백슬래시 등과 같은 일부 문자를 이스케이프해야 합니다. JSON 문자열에 이러한 특수 문자가 포함되어 있으면 json_decode() 함수를 사용하여 구문 분석할 때 오류가 발생할 수 있습니다. 해결 방법은 다음과 같습니다.

$jsonStr = '{"name":"Tom","age":18,"info":"\"Hello World\""}';
$phpObj = json_decode(str_replace('\"', '"', $jsonStr));
로그인 후 복사
  1. 요약

웹 개발에서는 JSON 형식 데이터의 사용이 매우 보편화되었습니다. PHP에서는 json_decode() 함수를 사용하여 JSON 형식 문자열을 PHP 객체나 배열로 쉽게 변환할 수 있어 개발자에게 큰 편의성을 제공합니다. 실제 개발에서는 json_decode() 함수의 고급 옵션을 사용하여 주석, 유니코드 인코딩 또는 특수 문자로 JSON 형식 문자열을 구문 분석할 수도 있습니다. 이러한 기술을 익히면 다양한 JSON 형식의 데이터를 보다 유연하게 처리할 수 있습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿