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

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

Linda Hamilton
發布: 2024-10-22 22:13:02
原創
192 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板