go playgroundgolang json Marszałek: jak pominąć pusty zagnieżdżonych struktury
Jak pokazano w powyższym kodzie, można użyć json:",omitempty"
pominięcie niektórych pól w struct do stawienia się w json.
Na przykład
type ColorGroup struct {
ID int `json:",omitempty"`
Name string
Colors []string
}
type Total struct {
A ColorGroup`json:",omitempty"`
B string`json:",omitempty"`
}
group := Total{
A: ColorGroup{},
}
W tym przypadku B
nie pojawi się w json.Marshal(group)
Jednak jeśli
group := Total{
B:"abc",
}
A
nadal pojawia się w json.Marshal(group)
{"A":{"Name":"","Colors":null},"B":"abc"}
Pytanie brzmi, jak możemy dostać tylko
{"B":"abc"}
EDIT: Po pewnym googling, oto propozycja use pointer, innymi słowy, skręcić Total
do
type Total struct {
A *ColorGroup`json:",omitempty"`
B string`json:",omitempty"`
}