Go 中的JSON 值解析
在某些情況下,從JSON 物件中提取特定值而不需要結構體是有利的。本文探討如何在 Go 中實現這一目標,為首先解組為結構體的更傳統方法提供了替代方案。
選項 1:Map[string]interface{}
Go 提供了一個內建的解決方案來儲存 JSON 值,而無需預先定義的結構。使用 json.Unmarshal 函數,您可以將 JSON 解碼為 map[string]interface{},其中鍵是表示 JSON 欄位名稱的字串,值是 Go 原生類型對應的值。
範例:
這種方法可讓您直接透過 JSON 屬性名稱存取所需的特定值,而不需要對應的結構體欄位。但是,它需要類型斷言來確保檢索到的值是預期的類型。
選項 2:自訂 Unmarshaler
或者,您可以實現自訂 json.Unmarshaler您的目標類型的介面可以更具體地說明碼過程。這提供瞭如何將 JSON 資料解組為所需 Go 值的更多控制。
範例:
使用此方法,您可以透過使用json:"ask_price" 標記對應的結構欄位並使用& 指標來指定自訂解組器接收器確保解碼後的值直接指派給結構欄位。這消除了對顯式類型斷言的需要,並提供了更客製化的解組體驗。
透過仔細考慮這些選項,您可以在 Go 中有效地提取特定的 JSON 值,而無需依賴預先定義的結構。
以上是如何在不使用結構體的情況下在 Go 中高效提取特定的 JSON 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!