Go JSON Marshal: 空のネストされた構造体の省略
Go の json:",omitempty" タグを使用すると、空のフィールドを除外できますJSON 出力からの値。ただし、この動作は値がゼロの構造体には適用されません。
空のフィールドがある場合にネストされた構造体を省略するには、非ポインター構造体の代わりにポインターを使用できます。これにより、構造体にゼロ以外の値が割り当てられていない場合、その構造体は空として扱われるようになります。
たとえば、次の構造体を考えてみましょう。
type ColorGroup struct { ID int `json:",omitempty"` Name string Colors []string } type Total struct { A *ColorGroup `json:",omitempty"` // Use pointer B string `json:",omitempty"` }
この場合、グループ.A にはゼロ以外の値が割り当てられていないため、空として扱われ、JSON 出力から省略されます。これは、JSON 出力に空の group.A が含まれる非ポインター構造体の使用とは対照的です。
次のプレイグラウンド リンクは、この動作を示しています: https://play.golang.org/p /3i7rh4e3t3D
以上がGo JSON Marshal で空のネストされた構造体を省略するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。