Heim >Backend-Entwicklung >Golang >Wie kann ich beim Unmarshalling von JSON in Go zwischen leeren und fehlenden Feldern unterscheiden?

Wie kann ich beim Unmarshalling von JSON in Go zwischen leeren und fehlenden Feldern unterscheiden?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 19:55:12448Durchsuche

How Can I Differentiate Between Empty and Missing Fields When Unmarshalling JSON in Go?

Unterscheiden ungültiger Werte von nicht spezifizierten Feldern in Go Unmarshaling

Das Unmarshaling von JSON-Daten in Golang kann unkompliziert sein, aber die Unterscheidung zwischen ungültigen Werten und nicht spezifizierten Feldern Werte können eine Herausforderung sein. Dieser Artikel befasst sich mit diesem Problem und bietet eine Lösung zur Unterscheidung zwischen den beiden.

Im bereitgestellten Beispiel haben wir einen Teil der Kategoriestrukturen, wobei jede Kategorie über ein Feld „Name“ und „Beschreibung“ verfügt. Beim Unmarshaling von JSON-Daten in diesem Slice stoßen wir auf ein Szenario, in dem sowohl Kategorie B als auch Kategorie C leere Beschreibungsfelder haben. Wir möchten jedoch wissen, ob es eine Möglichkeit gibt, zu erkennen, ob die Beschreibung der Kategorie B als leere Zeichenfolge angegeben ist oder einfach nicht in den JSON-Daten vorhanden ist.

Der Schlüssel besteht darin, das Beschreibungsfeld als Zeiger auf a zu deklarieren string:

type Category struct {
    Name        string
    Description *string
}

Wenn ein JSON-Feld mit einem leeren Stringwert vorhanden ist, wird es durch die Verwendung eines Zeigers auf einen Zeiger gesetzt, der auf einen leeren String (*"") zeigt. Wenn das Feld hingegen nicht in JSON vorhanden ist, bleibt der Zeiger auf Null ().

Die aktualisierte Ausgabe veranschaulicht diese Unterscheidung:

[{Name:A Description:0x1050c150} {Name:B Description:<nil>} {Name:C Description:0x1050c158}]

Hier Kategorie A Die Beschreibung ist nicht leer, die Beschreibung der Kategorie B ist Null (was auf ein nicht spezifiziertes Feld hinweist) und die Beschreibung der Kategorie C ist eine leere Zeichenfolge (zeigt einen angegebenen leeren Wert an).

Mit dieser Technik können Sie zwischen ungültigen Werten (Null) und nicht spezifizierten Feldern (Nullzeiger) unterscheiden und so das Verhalten Ihres Programms entsprechend anpassen.

Das obige ist der detaillierte Inhalt vonWie kann ich beim Unmarshalling von JSON in Go zwischen leeren und fehlenden Feldern unterscheiden?. 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