首頁 >後端開發 >Golang >如何在 Go 中解組未知大小的 JSON 陣列?

如何在 Go 中解組未知大小的 JSON 陣列?

DDD
DDD原創
2024-12-12 12:43:13516瀏覽

How to Unmarshal JSON Arrays of Unknown Size in Go?

使用未知大小的陣列解組JSON

透過JSON 擷取資料時,常常會遇到傳回的JSON 可能有也可能沒有SON大批。例如,當請求智慧電錶列表時,它可能會作為“gwrcmd”下的單一元素被接收。然而,當請求用電量時,它可能會作為“gwrcmd”數組傳回。

這種歧義帶來了編組挑戰,因為 Go 結構需要陣列和單一元素的明確定義。為了解決這個問題,json.Unmarshal 可用來傳回單一 struct { } 或基於 JSON 結構的陣列 []struct { }。

但是,如果預期的結果,json.Unmarshal 可能會遇到錯誤類型與 JSON 結構衝突。要解決此問題,可以建立第二個結構來複製第一個結構,但使用「Gwrcmd」切片除外。或者,更強大的方法涉及使用 json.RawMessage 捕獲未知類型的 JSON 值,並根據其內容執行進一步的解組。這避免了僅根據第一個位元組來確定數組類型的猜測。

提供的 Go 程式碼片段中示範了兩種方法的範例。此外,也列出了相關資源以供進一步探索。

以上是如何在 Go 中解組未知大小的 JSON 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn