ホームページ >バックエンド開発 >Golang >Go で動的 JSON フィールド タグをマーシャルするにはどうすればよいですか?

Go で動的 JSON フィールド タグをマーシャルするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-11 18:14:17289ブラウズ

How Can I Marshal Dynamic JSON Field Tags in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。