>백엔드 개발 >PHP 튜토리얼 >웹 서비스 호출 후 json_decode가 NULL을 반환하는 이유는 무엇입니까?

웹 서비스 호출 후 json_decode가 NULL을 반환하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-05 11:50:10806검색

Why is json_decode Returning NULL After a Web Service Call?

웹 서비스 호출 후 JSON 디코딩 문제

JSON 구문 분석과 관련된 이 상황에서 OP는 json_decode가 설명할 수 없이 NULL을 반환하는 독특한 문제를 경험합니다. 웹 서비스 호출. 웹 서비스는 적절한 구문을 따르는 것처럼 보이는 JSON 데이터를 전송합니다.

{"action":"set","user":"123123123123","status":"OK"}

그러나 json_decode($foo, true)를 사용하여 PHP 애플리케이션에서 이 JSON 페이로드를 디코딩하려고 시도하면 이상하게도 NULL이 반환됩니다.

잠재적 해결 방법

이 당혹스러운 문제를 해결하려면 문제인 경우 OP는 잠재적으로 중요한 요소인 PHP 마법 인용문을 간과합니다. 서버에서 마법 따옴표를 활성화하면 잠재적으로 위험한 문자를 탈출하여 들어오는 데이터에 큰 피해를 줄 수 있습니다. 이 경우 웹 서비스는 이스케이프되지 않은 JSON을 전송하여 마술 따옴표와 충돌을 일으키는 것 같습니다.

이 문제를 피하려면 PHP 스크립트 시작 부분에 다음 줄을 추가하여 마술 따옴표를 비활성화하세요.

if (get_magic_quotes_gpc()) {
  $param = stripslashes($_POST['param']);
} else {
  $param = $_POST['param'];
}
$param = json_decode($param, true);

이렇게 하면 웹 서비스에서 수신한 JSON 데이터가 매직 따옴표의 영향을 받지 않고 디코딩 문제를 해결할 수 있습니다.

위 내용은 웹 서비스 호출 후 json_decode가 NULL을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.