JSON 解碼語法錯誤:揭開隱藏的原因
使用JSON Web 服務時,通常會遇到神秘的「JSON_ERROR_SYNTAX」錯誤嘗試使用json_decode() 解碼JSON 資料。此錯誤訊息對實際問題的了解很少,讓開發人員感到沮喪。
此令人沮喪的錯誤背後的一個潛在罪魁禍首在於 JSON 資料中看不見的隱藏字元。為了解決這個問題,以下程式碼提供了一個強大的解決方案:
<code class="php">$data = file_get_contents('http://www.mywebservice'); if (!empty($data)) { // Remove unwanted characters for ($i = 0; $i <= 31; ++$i) { $data = str_replace(chr($i), "", $data); } $data = str_replace(chr(127), "", $data); // Check for 'efbbbf' byte order mark (BOM) if (0 === strpos(bin2hex($data), 'efbbbf')) { $data = substr($data, 3); } $obj = json_decode($data); switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - JSON_ERROR_NONE'; break; // ... other cases case JSON_ERROR_SYNTAX: echo "\r\n\r\n - SYNTAX ERROR \r\n\r\n"; break; } }</code>
此解決方案對JSON 資料執行徹底清理,刪除可能幹擾正確解碼的隱藏字元和位元組順序標記(BOM) 。透過消除這些看不見的障礙,開發人員可以獲得資訊更豐富的錯誤訊息或成功解碼 JSON 數據,從而減少神秘語法錯誤的噩夢。
以上是如何解決 JSON 解碼中的'JSON_ERROR_SYNTAX”錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!