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

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

Susan Sarandon
リリース: 2024-12-11 18:14:17
オリジナル
287 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート