JSONに構造体のフィールドを動的に含めたり除外したりするにはどうすればよいですか?

mehdy:

私はastructを持っていBaseます:

type Base struct {
        Name string `json:"name,omitempty"`
        // ... other fields
}

そして、さらに2つの構造体が埋め込まれていBaseます:

type First struct {
        Base
        // ... other fields
}

type Second struct {
        Base
        // ... other fields
}

今、私は元帥に構造体をしたいFirstSecond少し違いが。Nameフィールドを含めたいのですが、フィールドにFirst含めたくありませんSecond

または、質問を単純化するために、JSONの構造体フィールドを動的にオプトインおよびオプトアウトしたいと思います。

注:Name値には常に値があり、変更したくありません。

John S Perayil:

Marshalerタイプインターフェイスを実装してSecond、ダミータイプを作成できますSecondClone

type SecondClone Second

func (str Second) MarshalJSON() (byt []byte, err error) {

   var temp SecondClone
   temp = SecondClone(str)
   temp.Base.Name = ""
   return json.Marshal(temp)
}

これは、コードに他の変更を加えなくても機能します。

またName、別のタイプ/コピーで機能するため、値は変更されません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構造体に特性フィールドを含めるにはどうすればよいですか?

分類Dev

インスタンス化のために構造体のフィールドに制約を追加するにはどうすればよいですか?

分類Dev

埋め込まれた構造体のメソッドから構造体を含むフィールドを反映するにはどうすればよいですか?

分類Dev

範囲内の値を含めたり除外したりするにはどうすればよいですか?

分類Dev

GoでフラットなJSONオブジェクトになるように、埋め込まれた構造体フィールドを持つ構造体をマーシャリングするにはどうすればよいですか?

分類Dev

Goで動的構造体フィールドを設定するにはどうすればよいですか?

分類Dev

属性自体で注釈が付けられた構造体のフィールドに属性を提供するにはどうすればよいですか?

分類Dev

gitignoreには何を含める必要がありますか?また、envフォルダーをgitignoreに配置するにはどうすればよいですか?また、フォルダー構造は正しいですか?

分類Dev

この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

分類Dev

この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

分類Dev

ある構造体から別の構造体に繰り返しサブ構造体をコピーするにはどうすればよいですか?

分類Dev

Matlabの構造体から別の構造体にフィールド値をエクスポートするにはどうすればよいですか?

分類Dev

構造体配列にフィールドを追加するにはどうすればよいですか?

分類Dev

正規表現に特定のパターンを含めたり除外したりするにはどうすればよいですか?

分類Dev

「構造体フィールドの省略形が不安定です」というエラーを取り除くにはどうすればよいですか?

分類Dev

すべてのフィールドに対して `pub`を繰り返さずに、すべてのフィールドがパブリックであるパブリック構造体を作成するにはどうすればよいですか?

分類Dev

フィールドに名前が付けられた構造体をプリティプリントするにはどうすればよいですか?

分類Dev

その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

分類Dev

intの配列を含む構造体を構造体の配列に正しく割り当てるにはどうすればよいですか?

分類Dev

ANSI C:構造体フィールドを抽象化するにはどうすればよいですか?

分類Dev

構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

分類Dev

PostgreSQLのJSONフィールドの構造を変更するにはどうすればよいですか?

分類Dev

これらの配列を取得して、構造体のフィールドに入力するにはどうすればよいですか?

分類Dev

親の埋め込み構造体フィールド値を取得するにはどうすればよいですか?

分類Dev

ルート構造のフィールドが最初に解析され、次に埋め込まれた構造のフィールドが解析されることを確認するにはどうすればよいですか

分類Dev

一部のフィールドが読み取り専用で他のフィールドがnull可能である場合、Golang構造体を使用してAPIでCRUDを実行するにはどうすればよいですか?

分類Dev

リフレクトを使用して構造体のスライスのフィールドを変更するにはどうすればよいですか?

分類Dev

golangで構造体のjsonフィールド名を取得するにはどうすればよいですか?

分類Dev

「移動値を使用」エラーを取得せずに、ボックス化された構造体の複数のフィールドをバインドするにはどうすればよいですか?

Related 関連記事

  1. 1

    構造体に特性フィールドを含めるにはどうすればよいですか?

  2. 2

    インスタンス化のために構造体のフィールドに制約を追加するにはどうすればよいですか?

  3. 3

    埋め込まれた構造体のメソッドから構造体を含むフィールドを反映するにはどうすればよいですか?

  4. 4

    範囲内の値を含めたり除外したりするにはどうすればよいですか?

  5. 5

    GoでフラットなJSONオブジェクトになるように、埋め込まれた構造体フィールドを持つ構造体をマーシャリングするにはどうすればよいですか?

  6. 6

    Goで動的構造体フィールドを設定するにはどうすればよいですか?

  7. 7

    属性自体で注釈が付けられた構造体のフィールドに属性を提供するにはどうすればよいですか?

  8. 8

    gitignoreには何を含める必要がありますか?また、envフォルダーをgitignoreに配置するにはどうすればよいですか?また、フォルダー構造は正しいですか?

  9. 9

    この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

  10. 10

    この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

  11. 11

    ある構造体から別の構造体に繰り返しサブ構造体をコピーするにはどうすればよいですか?

  12. 12

    Matlabの構造体から別の構造体にフィールド値をエクスポートするにはどうすればよいですか?

  13. 13

    構造体配列にフィールドを追加するにはどうすればよいですか?

  14. 14

    正規表現に特定のパターンを含めたり除外したりするにはどうすればよいですか?

  15. 15

    「構造体フィールドの省略形が不安定です」というエラーを取り除くにはどうすればよいですか?

  16. 16

    すべてのフィールドに対して `pub`を繰り返さずに、すべてのフィールドがパブリックであるパブリック構造体を作成するにはどうすればよいですか?

  17. 17

    フィールドに名前が付けられた構造体をプリティプリントするにはどうすればよいですか?

  18. 18

    その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

  19. 19

    intの配列を含む構造体を構造体の配列に正しく割り当てるにはどうすればよいですか?

  20. 20

    ANSI C:構造体フィールドを抽象化するにはどうすればよいですか?

  21. 21

    構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

  22. 22

    PostgreSQLのJSONフィールドの構造を変更するにはどうすればよいですか?

  23. 23

    これらの配列を取得して、構造体のフィールドに入力するにはどうすればよいですか?

  24. 24

    親の埋め込み構造体フィールド値を取得するにはどうすればよいですか?

  25. 25

    ルート構造のフィールドが最初に解析され、次に埋め込まれた構造のフィールドが解析されることを確認するにはどうすればよいですか

  26. 26

    一部のフィールドが読み取り専用で他のフィールドがnull可能である場合、Golang構造体を使用してAPIでCRUDを実行するにはどうすればよいですか?

  27. 27

    リフレクトを使用して構造体のスライスのフィールドを変更するにはどうすればよいですか?

  28. 28

    golangで構造体のjsonフィールド名を取得するにはどうすればよいですか?

  29. 29

    「移動値を使用」エラーを取得せずに、ボックス化された構造体の複数のフィールドをバインドするにはどうすればよいですか?

ホットタグ

アーカイブ