錯誤「無法使用stdClass 類型的物件作為陣列」:Json 解碼難題
使用json_decode() 處理JSON 資料時,JSON 資料時,JSON 資料時,JSON 資料時,JSON 資料時,您可能會遇到一個神秘的錯誤:「無法將stdClass 類型的物件用作陣列」。此錯誤源自於以下事實: json_decode() 預設會傳回一個物件而不是數組,即使您正在解碼的 JSON 資料可能被建構為數組。
要修正此問題並啟用對數組元素,您可以利用 json_decode() 函數的第二個參數。透過將此參數設為 true,您可以指示函數傳回數組而不是物件。
例如,考慮以下程式碼:
$data = '{"context": "some value"}'; $result = json_decode($data);
在這種情況下,$result 將是一個對象,並嘗試以數組形式存取其「context」屬性,例如$result[ 'context'],將觸發上述錯誤。
要解決該錯誤並讀取數組值,請修改代碼如下:
$result = json_decode($data, true);
透過傳遞true 作為第二個參數,json_decode() 將建立一個數組,您將能夠按預期存取其「上下文」元素:
$context = $result['context'];
以上是為什麼 json_decode() 會拋出「無法使用 stdClass 類型的物件作為陣列」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!