解決json_decode 在Web 服務呼叫後傳回NULL
使用json_decode 解析從Web 服務擷取到的JSON 資料時,您偶爾可能會遇到令人費解的問題其中回傳值為NULL。本文深入探討了此問題的潛在原因並提供了解決方案。
此場景中的主要嫌疑人之一是伺服器內 PHP 魔術引號的處理不當。魔術引號是一種 PHP 配置,可自動轉義表單資料中的某些字符,例如引號和反斜線。
如果啟用魔術引號,從 Web 服務接收的 JSON 資料可能會損壞,導致 json_decode 失敗。要修正此問題,您可以停用魔術引號或在解碼 JSON 字串之前選擇性地從 JSON 字串中刪除斜線。
以下是如何處理這種情況的範例:
if (get_magic_quotes_gpc()) { // Magic quotes are enabled, remove slashes $jsonData = stripslashes($_POST['jsonData']); } else { $jsonData = $_POST['jsonData']; } $data = json_decode($jsonData, true);
在此範例中,我們首先使用 get_magic_quotes_gpc() 函數檢查是否啟用了魔術引號。如果是,我們使用 stripslashes() 函數從 JSON 字串中刪除任何轉義字元。
一旦 JSON 字串格式正確,我們就可以使用 json_decode 將其解析為關聯數組。此解決方案應該可以解決處理從 Web 服務檢索的 JSON 資料時 json_decode 傳回 NULL 的問題。
以上是為什麼 json_decode 在我的 Web 服務呼叫後回傳 NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!