>  기사  >  백엔드 개발  >  PHP에서 json_decode 함수 사용에 대한 자세한 소개

PHP에서 json_decode 함수 사용에 대한 자세한 소개

不言
不言앞으로
2018-12-29 10:13:069913검색

이 글은 PHP에서 json_decode 함수의 사용에 대해 자세히 소개합니다. 이는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

우리 모두는 json_decode 함수를 사용하여 JSON 형식 문자열을 디코딩할 수 있다는 것을 알고 있습니다. 일반적으로 사용되는 형식은 다음과 같습니다.

<?php
$json = &#39;some_json_data&#39;;
$result = json_decode($json, true);

실제로 json_decode() 함수에는 전달된 매개변수에 따라 함수의 동작이 달라집니다.

디코딩된 데이터

다음 오류를 보고하는 json_decode() 함수를 본 적이 있을 것입니다.

Warning: json_decode() expects parameter 1 to be string, xxx given in

오류 메시지에 따르면 첫 번째 매개변수는 문자열 유형이어야 하지만 실제로 첫 번째 매개변수는 세 가지가 있습니다. 아래 유형:

  • string

  • null

  • bool

매개변수 유형에 따라 함수의 반환 값도 변경됩니다.

반환 값

json_decode() 함수는 JSON 데이터를 올바르게 구문 분석하는 경우 기본적으로 객체를 반환합니다.

그러나 두 번째 매개변수가 true로 전달되거나 네 번째 매개변수가 JSON_OBJECT_AS_ARRAY로 전달된 후, JSON 데이터가 올바르게 구문 분석되면 함수는 객체 대신 배열을 반환합니다.

굵은 텍스트에 주의하세요. json_decode() 함수는 JSON 데이터를 올바르게 구문 분석할 때 개체 또는 배열을 반환하지만 경우에 따라 이 함수는 다른 데이터를 반환합니다.

  • 문자열 유형 및 올바른 JSON 형식 데이터 , 디코딩 후 객체 또는 배열 반환

  • PHP 5.6부터 JSON 데이터에는 true, false 및 null이 있습니다. 소문자 형식이 아닌 경우 디코딩이 실패하고 null이 반환됩니다.

  • 문자열 형식입니다. true' , 'false', 'null'은 자신을 반환합니다(모두 소문자)

  • 다른 문자열 유형 매개변수는 null을 반환합니다.

  • true / false / null은 직접 null을 반환합니다.

  • 다른 유형의 데이터 오류 신고 직접

  • 세 번째 매개변수 재귀 깊이가 1이면 null이 직접 반환됩니다.

그러므로 foreach를 사용하여 디코딩된 데이터를 반복할 때 디코딩된 데이터가 배열인지 여부에 주의해야 합니다. 그러면 반복 중에 오류가 보고됩니다.

JSON 공식 웹사이트에 가면 어떤 종류의 데이터가 JSON 형식인지 알아볼 수 있습니다.

재귀 깊이

세 번째 매개변수는 재귀 깊이를 나타내며 깊이는 0보다 커야 합니다. 그렇지 않으면 오류가 발생합니다. 보고됩니다. 재귀 깊이가 1이면 결과는 null이므로 최소 재귀 깊이는 2입니다.

디코딩 옵션

네 번째 매개변수는 옵션을 설정하는 데 사용됩니다.

  • JSON_PRETTY_PRINT는 쉽게 볼 수 있도록 일부 공백 문자를 채웁니다JSON_PRETTY_PRINT 会填充一些空白字符进去,方便查看

  • JSON_UNESCAPED_SLASHES 不要编码 /

  • JSON_UNESCAPED_UNICODE 不要编码 unicode 字符, 默认是编码成 uXXXX

JSON_UNESCAPED_SLASHES /

JSON_UNESCAPED_UNICODE 인코딩 안 함 유니코드 문자를 인코딩하지 않음, 기본값은 uXXXX

🎜로 인코딩하는 것임 🎜🎜🎜us json_last_error 함수, json_last_error_msg(PHP >= 5.5) 함수 및 @ 연산자와 함께 사용할 수도 있습니다: 🎜
<?php
$json = 'some_json_data';
$result = @json_decode((string)$json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    throw new Exception(json_last_error_msg());
}
🎜🎜

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

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제