首頁 >後端開發 >Golang >如何在 Go 中解組期間處理動態 JSON 鍵?

如何在 Go 中解組期間處理動態 JSON 鍵?

Susan Sarandon
Susan Sarandon原創
2024-12-07 13:02:13778瀏覽

How to Handle Dynamic JSON Keys During Unmarshaling in Go?

JSON 解組中的動態鍵處理:GoLang

在GoLang 中,當JSON 中的鍵時,將JSON 資料解組到結構中可能會變得具有挑戰性是動態的或不能直接對應到結構中的特定欄位。本文透過介紹使用映射來捕獲動態鍵及其關聯值來解決此問題。

問題描述:

考慮以下結構:

type X struct {
 A string `json:"a_known_string"`
 B string `json:"b_known_string"`
}

和一個JSON 字串:

"{
 "any string" : {
   "a_known_string" : "some value",
   "b_known_string" : "another value" 
 }
}"

使用🎜>使用具有結構的標準JSON Unmarshal 函數不會捕獲動態鍵“任何字串”。

使用映射的解決方案:

要解決此問題,我們可以使用映射來儲存動態鍵值對。這是一個範例:

var m map[string]X
err := json.Unmarshal([]byte(jsnStr), &m)

在此解決方案中,m 變數將是一個映射,其中鍵是動態字串,值是 X 結構的實例。

這種方法允許我們捕捉動態鍵及其對應的值,同時仍保持資料的結構化表示。

Playground範例:

提供的Playground 範例示範了解決方案的用法:

https://go.dev/play/p/ tZ27zKhI9Ct

以上是如何在 Go 中解組期間處理動態 JSON 鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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