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