ホームページ >バックエンド開発 >Golang >Go で構造体フィールドに複数の名前タグを定義するにはどうすればよいですか?

Go で構造体フィールドに複数の名前タグを定義するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-08 00:29:19901ブラウズ

How Can I Define Multiple Name Tags for a Struct Field in Go?

構造体での複数の名前タグの定義

これまでに遭遇したように、構造体フィールドに複数の名前タグを定義する必要がある場合があります。 BSON や JSON などのさまざまなシリアル化形式に対応します。提供された例は、BSON フィールド名が大文字であるにもかかわらず、小文字のフィールド名を維持しながら構造体を JSON にエンコードする必要性を示しています。

この問題の解決策は、タグ文字列区切り文字をカンマではなくスペースで区切ることです。コードを次のように変更すると、この問題が解決されます。

type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}

reflect パッケージのドキュメントによると、タグ文字列はスペースで区切られた「key:'value'」ペアの連結です。各キーは空ではない文字列であり、制御文字、スペース、引用符、コロンを含めることはできません。各値は二重引用符で囲まれ、Go 文字列リテラル構文に従います。

以上がGo で構造体フィールドに複数の名前タグを定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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