Heim >Backend-Entwicklung >Golang >Wie kann ich leere verschachtelte Strukturen in Go JSON Marshal weglassen?

Wie kann ich leere verschachtelte Strukturen in Go JSON Marshal weglassen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-16 02:41:14596Durchsuche

How to Omit Empty Nested Structs in Go JSON Marshal?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn