Web 服務呼叫後的JSON 解碼問題
在這種有關JSON 解析的情況下,OP 遇到一個特殊問題,即json_decode 在呼叫後莫名其妙地回傳NULL呼叫網路服務。 Web 服務傳輸看似遵循正確語法的JSON 資料:
{"action":"set","user":"123123123123","status":"OK"}
但是,在嘗試使用json_decode($foo, true) 在PHP 應用程式中解碼此JSON 負載時,它令人困惑地返回NULL。
潛在的解決方案
為了解決這個令人困惑的問題, OP 忽略了一個潛在的關鍵因素:PHP 魔術引號。如果在伺服器上啟用魔術引號,則可能會透過轉義潛在危險字元來對傳入資料造成嚴重破壞。在這種情況下,Web 服務似乎正在傳輸未轉義的 JSON,從而導致與魔術引號發生衝突。
要避免此問題,請透過將以下行新增至PHP 腳本的開頭來停用魔術引號:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
這可確保從Web 服務接收的JSON 資料不受魔術引號的影響,從而解決解碼問題。
以上是為什麼 json_decode 在 Web 服務呼叫後會回傳 NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!