首頁 >後端開發 >php教程 >儘管通過了驗證,為什麼我還是收到 JSON_ERROR_SYNTAX 錯誤?

儘管通過了驗證,為什麼我還是收到 JSON_ERROR_SYNTAX 錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-22 22:13:02194瀏覽

Why Am I Getting a JSON_ERROR_SYNTAX Error Despite Passing Validation?

JSON 解碼錯誤:

儘管透過線上格式化程式通過了驗證,但在使用json_decode() 解碼JSON 資料時,您會遇到JSON_ERROR_SYNTAX 錯誤。

隱藏字符和無效 JSON:

根本問題在於隱藏字符,這些字符在 JSON 文本中可能不會立即顯現出來。這些字元通常是不可見的,會破壞 JSON 的語法,導致解碼器失敗。

解決方案:

要解決此問題,您可以實現中提供的以下程式碼回應:

<code class="php">$json = file_get_contents("http://yourwebsite.com/JsonData");

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

// Handle UTF-8 BOM
if (0 === strpos(bin2hex($json), 'efbbbf')) {
    $json = substr($json, 3);
}

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

此程式碼刪除不需要的字符,包括控製字符和UTF-8 BOM (0xef-0xbb-0xbf)。透過刪除這些字符,解碼器能夠正確解析 JSON 資料。

以上是儘管通過了驗證,為什麼我還是收到 JSON_ERROR_SYNTAX 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn