겉보기에 유효한 JSON에서 PHP json_decode() 디코딩 문제
PHP의 json_decode 함수를 사용하여 일반 텍스트 파일에 저장된 JSON을 디코딩하려고 할 때 , 일부 사용자는 JSON의 명백한 유효성에도 불구하고 설명할 수 없는 NULL 반환을 경험합니다. 구조.
영향을 받는 JSON은 JSON 스키마 유효성 검사 표준을 준수하는 경우가 많으며 http://jsonlint.com/과 같은 플랫폼에서 엄격한 테스트를 통과합니다. 그러나 PHP에서 JSON을 디코딩할 때는 여전히 파악하기 어렵습니다.
이 문제를 해결하려면 다음 코드 줄을 디코딩 프로세스에 통합하는 것을 고려하십시오.
json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true);
이 수정된 json_decode 호출은 JSON 문자열의 보이지 않거나 인쇄할 수 없는 문자(예: 제어 문자, 불법 UTF-8 문자 또는 특수 문자)와 빈 문자열. 이러한 문자는 디코딩 중에 불일치를 일으키고 NULL 반환을 초래할 수 있습니다.
이러한 문자를 필터링함으로써 수정된 코드는 json_decode 함수가 JSON 문자열을 정확하게 구문 분석할 수 있도록 보장하여 JSON 문자열의 유효한 PHP 표현을 반환할 수 있도록 합니다. JSON 데이터.
위 내용은 유효한 JSON에도 불구하고 내 PHP `json_decode()`가 NULL을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!