對json_decode() 建立陣列進行故障排除
嘗試使用json_decode() 將JSON 資料解析為陣列時,開發人員可能會群組時,開發人員可能會群組時,開發人員可能會群組時,開發人員可能會群組時,開發人員可能會群組時,開發人員可能會群組遇到錯誤表示物件不能用作數組。本文旨在解決這個問題,解釋從 JSON 字串建立陣列的正確方法。
錯誤解釋
錯誤「Fatal error: Cannot use object of type stdClass as array」表示 json_decode() 已將 JSON 資料解釋為物件而非陣列。預設情況下,json_decode() 傳回一個 stdClass 對象,該物件具有與 JSON 物件的鍵對應的屬性。
解決方案:指定回傳類型
要解決此問題,有必要明確指出所需的回傳值應該是一個陣列。這是透過指定 true 作為 json_decode() 的第二個參數來實現的,如下所示:
$result = json_decode($jsondata, true);
透過此修改,$result 將成為關聯數組,其中鍵與 JSON中的屬性名稱符合object.
替代選項
在首選整數鍵的場景中除了屬性名稱之外,還需要一個額外的步驟:
$result = array_values(json_decode($jsondata, true));
此程式碼首先將JSON 資料解碼為關聯數組,然後使用array_values()將其轉換為具有整數鍵的陣列。
存取數組元素
一旦 JSON 資料成功解碼為數組,存取它的元素很簡單。以下程式碼展示如何從JSON 字串存取「Result」屬性:
print_r($result['Result']);
透過遵循這些準則,開發人員可以使用json_decode() 有效地從JSON 字串建立數組,避免處理物件的錯誤作為數組。
以上是為什麼 `json_decode()` 傳回一個物件而不是數組,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!