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
Freigeben: 2024-12-16 02:41:14
Original
595 Leute haben es durchsucht

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"`
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage