Heim >Backend-Entwicklung >Golang >Wie kann ich leere verschachtelte Strukturen in Go JSON Marshal weglassen?
Go JSON Marshal: Leere verschachtelte Strukturen weglassen
Mit dem Tag json:",omitempty" in Go können Sie Felder ausschließen, die leer sind Werte aus der JSON-Ausgabe. Dieses Verhalten gilt jedoch nicht für Nullwertstrukturen.
Um eine verschachtelte Struktur wegzulassen, wenn sie leere Felder enthält, können Sie einen Zeiger anstelle einer Nicht-Zeiger-Struktur verwenden. Dadurch wird sichergestellt, dass die Struktur als leer behandelt wird, wenn ihr kein Wert ungleich Null zugewiesen wurde.
Betrachten Sie beispielsweise die folgende Struktur:
type ColorGroup struct { ID int `json:",omitempty"` Name string Colors []string } type Total struct { A *ColorGroup `json:",omitempty"` // Use pointer B string `json:",omitempty"` }
In diesem Fall if group .A wird kein Wert ungleich Null zugewiesen, es wird als leer behandelt und in der JSON-Ausgabe weggelassen. Dies steht im Gegensatz zur Verwendung einer Nicht-Zeiger-Struktur, die immer noch die leere Gruppe.A in der JSON-Ausgabe enthalten würde.
Der folgende Playground-Link veranschaulicht dieses Verhalten: https://play.golang.org/p /3i7rh4e3t3D
Das obige ist der detaillierte Inhalt vonWie kann ich leere verschachtelte Strukturen in Go JSON Marshal weglassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!