> 백엔드 개발 > PHP 문제 > PHP json에서 배열 함수로

PHP json에서 배열 함수로

王林
풀어 주다: 2023-05-05 21:25:06
원래의
523명이 탐색했습니다.

PHP에서는 처리를 위해 JSON을 배열로 변환해야 하는 경우가 많습니다. JSON 형식은 상대적으로 간결하고 이해하기 쉽기 때문에 프런트엔드와 백엔드 간에 데이터를 전송하는 일반적인 형식이 되었습니다. 따라서 PHP에는 JSON을 배열로 변환하는 데 도움이 되는 몇 가지 기능이 있습니다.

이 글에서는 PHP에서 일반적으로 사용되는 배열 함수에 대한 여러 JSON을 소개합니다.

  1. json_decode()

json_decode() 함수는 JSON 문자열을 PHP 배열이나 개체로 변환하는 데 사용되는 PHP의 기본 함수입니다. 구문은 다음과 같습니다:

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

where:

  • $json: 변환해야 하는 JSON 문자열.
  • $assoc: 이 매개변수가 TRUE이면 배열을 반환하고, FALSE이면 Object 객체를 반환합니다.
  • $length: 재귀 호출의 깊이를 제어하는 ​​데 사용되는 최대 깊이를 지정합니다. 기본값은 512입니다.
  • $options: JSON 인코딩 옵션, 변환 형식을 지정할 수 있습니다.

샘플 코드:

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"]}';
$arr = json_decode($json_str, TRUE);
print_r($arr);
로그인 후 복사

출력 결과:

Array
(
    [name] => Tom
    [age] => 20
    [hobby] => Array
        (
            [0] => reading
            [1] => writing
        )
)
로그인 후 복사

json_decode() 함수를 통해 JSON 문자열을 배열로 변환하는 데 성공했습니다.

  1. json_decode()와 JSON_THROW_ON_ERROR

PHP 7.3 이상에서는 변환 오류가 발생할 때 json_decode() 함수가 예외를 발생시키도록 JSON_THROW_ON_ERROR 옵션을 사용할 수 있습니다. 샘플 코드는 다음과 같습니다.

$json_str = '{"name":"Tom","age":20,"hobby:["reading","writing"]}';
try {
    $arr = json_decode($json_str, TRUE, 512, JSON_THROW_ON_ERROR);
    print_r($arr);
} catch (JsonException $e) {
    echo 'JSON错误:' . $e->getMessage();
}
로그인 후 복사

출력 결과:

JSON错误:Syntax error
로그인 후 복사
로그인 후 복사

이 예에서는 JSON 문자열 형식이 올바르지 않기 때문에 json_decode() 함수에서 예외가 발생하고 오류 메시지가 표시되었습니다.

  1. json_last_error_msg()

json_decode() 함수를 사용하여 JSON 문자열을 변환할 때 가끔 구문 분석 오류가 발생할 수 있습니다. 이 경우 json_last_error_msg() 함수를 사용하여 오류 정보를 얻을 수 있습니다. 샘플 코드는 다음과 같습니다.

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"';
$arr = json_decode($json_str, TRUE);
if (json_last_error() === JSON_ERROR_NONE) {
    print_r($arr);
} else {
    echo 'JSON错误:' . json_last_error_msg();
}
로그인 후 복사

출력 결과:

JSON错误:Syntax error
로그인 후 복사
로그인 후 복사

이 예에서는 json_last_error_msg()가 잘못된 문자열 형식으로 인해 오류 메시지를 반환했습니다.

  1. json_encode()

PHP에서는 json_encode() 함수를 사용해야 PHP 배열을 JSON 형식 문자열로 변환할 수도 있습니다. 구문은 다음과 같습니다.

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
로그인 후 복사

위치:

  • $value: JSON 형식으로 변환해야 하는 PHP 변수입니다.
  • $옵션: 선택사항. JSON 인코딩 옵션.
  • $깊이: 선택사항. 최대 깊이를 지정합니다. 기본값은 512입니다.

샘플 코드는 다음과 같습니다.

$arr = array('name' => 'Tom', 'age' => 20, 'hobby' => array('reading', 'writing'));
$json_str = json_encode($arr, JSON_UNESCAPED_UNICODE);
echo $json_str;
로그인 후 복사

출력 결과:

{"name":"Tom","age":20,"hobby":["reading","writing"]}
로그인 후 복사

json_encode() 함수를 통해 PHP 배열을 JSON 문자열로 변환하는 데 성공했습니다.

요약:

PHP에서는 json_decode() 함수를 사용하여 JSON 문자열을 배열이나 객체로 변환할 수 있고, json_encode() 함수를 사용하여 PHP 배열을 JSON 형식 문자열로 변환할 수도 있습니다. 일반적인 상황에서는 기본 옵션을 사용할 수 있으며, 필요한 경우 관련 옵션을 사용하여 구성할 수 있습니다. JSON을 구문 분석하거나 인코딩할 때 더 나은 처리를 위해 관련 함수를 사용하여 오류 정보를 얻을 수도 있습니다.

위 내용은 PHP json에서 배열 함수로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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