이 글은 PHP에서 json_decode 함수의 사용에 대해 자세히 소개합니다. 이는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
우리 모두는 json_decode 함수를 사용하여 JSON 형식 문자열을 디코딩할 수 있다는 것을 알고 있습니다. 일반적으로 사용되는 형식은 다음과 같습니다.
<?php $json = 'some_json_data'; $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!