GO中的元帥Dynamic JSON欄位標籤:克服挑戰
在處理GO中的JSON資料時,通常比手動建構JSONSON字串更喜歡撥號。對於表達基礎架構配置的Terraform JSON格式,這是正確的。但是,在遇到動態JSON鍵時會出現一個常見的挑戰,例如提供的範例中的隨機「 web1」名稱。
>>
提出的問題是:>
>不幸的是,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中文網其他相關文章!