Go で動的 JSON フィールド タグをマーシャリングする
JSON 形式を使用して Terraform ファイルの JSON を生成する場合、次のような問題が発生する可能性があります。ランダムな名前または変数名を持つリソースの動的 JSON キー。これは、JSON マーシャリング用の Terraform のフィールド タグに静的識別子が必要なために発生します。
従来は、カスタム コードを使用して独自の JSON をロールすることを検討することもありましたが、既存のマーシャリング機能を使用することをお勧めします。疑問が生じます: Go のフィールド タグを使用して動的な JSON キーを作成するにはどうすればよいですか?
解決策
残念ながら、Go ではフィールド タグを使用して動的な JSON キーを生成することはできません。 。ただし、代替ソリューションとして、マップを使用するという方法があります。
マップの使用
Go のマップでは動的キーが許可されるため、この状況に最適です。次に例を示します。
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { // Your instance properties here }
この例では、Resource 構造体の AWSInstance フィールドは、動的文字列キーを使用して個々の AWSInstance 値を保存するマップです。
使用例
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ // Initialize your instance properties }, // ... add other instances with dynamic keys }, }
遊び場例
Go プレイグラウンドでインタラクティブな例を探索できます: https://go.dev/play/p/e9d2O-cLsjX
以上がGo で動的 JSON フィールド タグをマーシャルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。