首頁 >後端開發 >php教程 >儘管 JSON 有效,為什麼「json_decode()」回傳 NULL?

儘管 JSON 有效,為什麼「json_decode()」回傳 NULL?

Susan Sarandon
Susan Sarandon原創
2024-11-28 16:12:15813瀏覽

Why Does `json_decode()` Return NULL Despite Valid JSON?

json_decode() 與有效JSON:案例研究

嘗試使用json_decode() 解碼儲存在文字檔案中的JSON 物件時,可能JSON 物件時,可能會會出現這樣的情況:儘管JSON 對於JSON 驗證器來說是有效的,但函數仍傳回NULL。這可能會令人困惑,因為檔案是可讀的並且 JSON 語法似乎是正確的。

在這種情況下,建議檢查可能已滲入 JSON 字串的不可列印字元。這些字元可能會破壞解碼過程,導致 json_decode() 失敗。

要解決此問題,可以使用正規表示式對 JSON 字串進行清理,以刪除這些不可列印的字元。以下程式碼片段示範了這一點:

$json_string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string);
$json_object = json_decode($json_string, true);

此程式碼將 $json_string 變數中的所有不可列印字元替換為空字串。 json_decode() 中的 true 參數確保解碼結果會作為關聯數組傳回,這可能會更方便進一步處理。

透過刪除不可列印的字符,可以成功解碼清理後的 JSON 字串,防止 json_decode() 返回 NULL。這確保了有效的 JSON 資料可以可靠地轉換為 PHP 資料結構以供進一步使用。

以上是儘管 JSON 有效,為什麼「json_decode()」回傳 NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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