Web 服務呼叫後 JSON 解碼傳回 Null
此執行緒探討了解碼 Web 服務呼叫的 JSON 回應時遇到的特殊行為。該問題的出現是由於 json_decode 函數傳回 NULL,儘管 Web 服務傳回 JSON 資料。
要解決這個問題,找出根本原因非常重要。在給定的場景中,問題的關鍵在於魔術引號,這是一個已棄用的 PHP 配置。魔術引號會自動轉義某些字元並更改其在全域變數中的意義,例如 $_GET、$_POST、$_COOKIE 等。
啟用魔術引號時,它們會透過破壞從接收到的 JSON 資料來幹擾解碼過程。網路服務。這會導致 json_decode 失敗並傳回 NULL。
解:
要解決此問題,必須專門停用 $_POST 變數的魔術引號。這可以透過以下程式碼來實現:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
透過停用魔術引號,JSON 資料保持不變,並且可以使用 json_decode 成功解碼。
以上是為什麼「json_decode」在 Web 服務呼叫後回傳 NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!