PHP json_decode() 看似有效JSON 的解碼問題
嘗試使用PHP 中的json_decode 函數解碼儲存在明文檔案中的JSON時,儘管JSON 明顯有效,但有些使用者還是遇到了莫名其妙的NULL 回傳結構。
受影響的 JSON 通常符合 JSON 模式驗證標準,並在 http://jsonlint.com/ 等平台上通過了嚴格的測試。但是,在 PHP 中解碼 JSON 時,它仍然難以捉摸。
要解決此問題,請考慮將以下程式碼行合併到解碼過程中:
json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true);
此修改後的json_decode 呼叫將取代JSON 字串中任何不可見或不可列印的字元(例如控製字元、非法UTF-8 字元或特殊字元)以及空字串。這些字元可能會導致解碼過程中出現差異並導致 NULL 返回。
透過過濾掉此類字符,修改後的程式碼可確保 json_decode 函數能夠準確解析 JSON 字串,使其能夠傳回該字串的有效 PHP 表示形式JSON 資料。
以上是儘管 JSON 有效,為什麼我的 PHP `json_decode()` 回傳 NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!