私はこのような構造体を持っています:
type Result struct {
Data MyStruct `json:"data,omitempty"`
Status string `json:"status,omitempty"`
Reason string `json:"reason,omitempty"`
}
ただし、MyStruct のインスタンスが完全に空 (つまり、すべての値が既定値) の場合でも、次のようにシリアル化されています。
"data":{}
encoding/jsonドキュメントでは、「空の」フィールドが次のように指定されていることを知っています。
false、0、任意の nil ポインターまたはインターフェイス値、および任意の配列、スライス、マップ、または長さゼロの文字列
ただし、すべての空/デフォルト値を持つ構造体は考慮されていません。そのすべてのフィールドも でタグ付けされていますomitempty
が、これは効果がありません。
空の構造体であるフィールドをマーシャリングしないように JSON パッケージを取得するにはどうすればよいですか?