在Go 中編組動態JSON 欄位標籤
使用JSON 格式為Terraform 檔案產生JSON 時,您可能會遇到使用的挑戰具有隨機或變數名稱的資源的動態JSON 鍵。出現這種情況是因為 Terraform 的 JSON 編組欄位標籤需要靜態識別碼。
傳統上,人們可能會考慮使用自訂程式碼來滾動自己的 JSON,但是,最好使用現有的編組功能。問題來了:如何使用 Go 的欄位標籤建立動態 JSON 鍵?
解決方案
不幸的是,在 Go 中使用欄位標籤產生動態 JSON 鍵是不可能的。然而,還有另一種解決方案:使用地圖。
使用地圖
Go 中的地圖允許動態鍵,這使得它們非常適合這種情況。以下是一個範例:
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { // Your instance properties here }
在此範例中,資源結構中的 AWSInstance 欄位是使用動態字串鍵來儲存各個 AWSInstance 值的對應。
範例用法
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ // Initialize your instance properties }, // ... add other instances with dynamic keys }, }
遊樂場範例
您可以在互動式範例:https ://go.dev/play/p/e9d2O-cLsjX
以上是如何在 Go 中編組動態 JSON 欄位標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!