首頁 > 後端開發 > Golang > 如何使用欄位標籤在 Go 中編組動態 JSON 鍵?

如何使用欄位標籤在 Go 中編組動態 JSON 鍵?

Mary-Kate Olsen
發布: 2024-12-11 07:24:09
原創
233 人瀏覽過

How Can I Marshal Dynamic JSON Keys in Go Using Field Tags?

GO中的元帥Dynamic JSON欄位標籤:克服挑戰

在處理GO中的JSON資料時,通常比手動建構JSONSON字串更喜歡撥號。對於表達基礎架構配置的Terraform JSON格式,這是正確的。但是,在遇到動態JSON鍵時會出現一個常見的挑戰,例如提供的範例中的隨機「 web1」名稱。

>>

提出的問題是:如何使用GO的欄位標籤處理此類動態JSON鍵(例如,JSON:「 AWS_INSTANCE」)?

>

>不幸的是,GO的欄位標籤不直接支援動態鍵。提供的解決方案嘗試使用欄位標籤來表示靜態金鑰(“資源”和“ AWS_INSTANCE”),但無法解決動態金鑰“ Web1”。替代方案,答案建議使用映射表示動態鍵,允許在運行時分配值。

type Resource struct {
    AWSInstance map[string]AWSInstance `json:"aws_instance"`
}

type AWSInstance struct {
    AMI string `json:"ami"`
    Count int `json:"count"`
    SourceDestCheck bool `json:"source_dest_check"`
}
登入後複製
在此範例中,awsinstance變成由動態名稱(例如,「 web1」)鍵入的地圖。 )。然後,可以根據需要使用特定值填充地圖。

r := Resource{
    AWSInstance: map[string]AWSInstance{
        "web1": AWSInstance{
            AMI:   "qdx",
            Count: 2,
        },
    },
}
登入後複製
透過使用地圖,可以輕鬆地在GO中處理動態JSON鍵,從而使編組在場景中有效地使用,而字段標籤不足。

以上是如何使用欄位標籤在 Go 中編組動態 JSON 鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板