>  기사  >  백엔드 개발  >  유효한 JSON 형식에도 불구하고 JSON_DECODE()에서 \"SYNTAX ERROR\"를 해결하는 방법은 무엇입니까?

유효한 JSON 형식에도 불구하고 JSON_DECODE()에서 \"SYNTAX ERROR\"를 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-22 22:02:29458검색

How to Resolve

온라인 포맷터에서 유효한 JSON에도 불구하고 JSON_ERROR_SYNTAX

JSON이 외부 포맷터에서는 유효한 것처럼 보이지만 json_decode()에서 "SYNTAX ERROR" 응답이 발생함 당황스러울 수 있다. 포괄적인 솔루션은 다음과 같습니다.

숨겨진 문자 제거:

보이지 않는 문자는 구문 오류를 일으킬 수 있습니다. 다음 코드를 사용하여 이러한 문자를 제거합니다.

<code class="php">$json = file_get_contents('http://www.mywebservice');

// Remove unwanted characters
for ($i = 0; $i <= 31; ++$i) { $json = str_replace(chr($i), "", $json); }
$json = str_replace(chr(127), "", $json);

// Handle BOM (Byte Order Mark)
if (0 === strpos(bin2hex($json), 'efbbbf')) { $json = substr($json, 3); }</code>

정리된 JSON 디코딩:

이제 숨겨진 문자가 제거되었으므로 JSON을 디코딩합니다.

<code class="php">$obj = json_decode($json);</code>

오류 처리:

디코딩이 계속 실패하면 json_last_error()를 사용하여 특정 오류 코드를 확인하세요.

<code class="php">switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo 'JSON_ERROR_NONE';
        break;
    case JSON_ERROR_DEPTH:
        echo 'JSON_ERROR_DEPTH';
        break;
    // ... Other error codes
    default:
        echo 'Unknown Error';
        break;
}</code>

다음 단계를 따르면 JSON 구문 오류를 수정하고 JSON 데이터를 성공적으로 디코딩할 수 있습니다. PHP 5.5의 json_last_error_msg() 함수는 추가 오류 세부 정보를 제공하지만 숨겨진 문자 및 디코딩 문제를 해결한 후에는 필요하지 않을 수도 있습니다.

위 내용은 유효한 JSON 형식에도 불구하고 JSON_DECODE()에서 \"SYNTAX ERROR\"를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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