首頁 >後端開發 >Golang >如何在 Go 中處理動態 JSON 欄位標籤?

如何在 Go 中處理動態 JSON 欄位標籤?

Patricia Arquette
Patricia Arquette原創
2024-12-27 09:31:09475瀏覽

How to Handle Dynamic JSON Field Tags in Go?

Go 中的動態JSON 欄位標籤

為Terraform 檔案產生JSON 時,您可能會遇到動態欄位名稱,例如資源名稱和AWS 實例名稱。這些名稱在編譯時是未知的,這使得使用 Go 的欄位標籤進行編組具有挑戰性。

要克服這個問題,請考慮使用映射:

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"`
}

使用映射,您可以將動態字段名稱分配給映射鍵並將值插入到映射中以動態構造JSON有效負載。例如:

r := Resource{
    AWSInstance: map[string]AWSInstance{
        "web1": AWSInstance{
            AMI:   "qdx",
            Count: 2,
        },
    },
}

此方法可讓您處理可變 JSON 鍵並在 Go 中產生具有動態欄位名稱的自訂 JSON 負載。

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

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