使用未知大小的陣列解組JSON
透過JSON 擷取資料時,常常會遇到傳回的JSON 可能有也可能沒有SON大批。例如,當請求智慧電錶列表時,它可能會作為“gwrcmd”下的單一元素被接收。然而,當請求用電量時,它可能會作為“gwrcmd”數組傳回。
這種歧義帶來了編組挑戰,因為 Go 結構需要陣列和單一元素的明確定義。為了解決這個問題,json.Unmarshal 可用來傳回單一 struct { } 或基於 JSON 結構的陣列 []struct { }。
但是,如果預期的結果,json.Unmarshal 可能會遇到錯誤類型與 JSON 結構衝突。要解決此問題,可以建立第二個結構來複製第一個結構,但使用「Gwrcmd」切片除外。或者,更強大的方法涉及使用 json.RawMessage 捕獲未知類型的 JSON 值,並根據其內容執行進一步的解組。這避免了僅根據第一個位元組來確定數組類型的猜測。
提供的 Go 程式碼片段中示範了兩種方法的範例。此外,也列出了相關資源以供進一步探索。
以上是如何在 Go 中解組未知大小的 JSON 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!