„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich zwischen void und nicht spezifizierten Feldern unterscheiden, wenn ich JSON in GO unmarshaling?

Wie kann ich zwischen void und nicht spezifizierten Feldern unterscheiden, wenn ich JSON in GO unmarshaling?

Gepostet am 2025-03-23
Durchsuche:920

How Can I Differentiate Between Void and Unspecified Fields When Unmarshaling JSON in Go?

erkennen void und nicht spezifizierte Felder während JSON Unmarshaling in Go

In JSON können es schwierig sein, zwischen void -Werten zu unterscheiden und nicht spezifizierte Fields zu unterscheiden. JSON:

[ {"Name": "a", "Beschreibung": "monotremata"}, {"Name": "B"}, {"Name": "C", "Beschreibung": ""} ]

[
  {"Name": "A", "Description": "Monotremata"},
  {"Name": "B"},
  {"Name": "C", "Description": ""}
]

Geben Sie die Kategoriestruktur {ein Name Zeichenfolge Beschreibung Zeichenfolge }

type Category struct {
  Name        string
  Description string
}

[{name: a Beschreibung: monotremata} {Name: B Beschreibung:} {name: c Beschreibung:}]

[{Name:A Description:Monotremata} {Name:B Description:} {Name:C Description:}]

. In beiden Fällen wird das Feld Beschreibung auf eine leere Zeichenfolge in der GO -Darstellung eingestellt.

Um zwischen diesen Fällen zu unterscheiden, besteht ein Ansatz darin, Zeiger für optionale Felder zu verwenden. Durch Ändern der Art der Beschreibung in einen Zeiger können wir zwischen einem leeren Zeichenfolgenwert und einem Nullwert unterscheiden (was auf ein nicht spezifiziertes Feld angibt):

type Category struct {
  Name        string
  Description *string
}

Wenn wir den JSON in diese geänderte Struktur eintauchen, erhalten wir die folgende Ausgabe:

[{Name:A Description:0x1050c150} {Name:B Description:} {Name:C Description:0x1050c158}]
. Beschreibung Feld von C ist ein Zeiger auf eine leere Zeichenfolge (angezeigt durch die Hexadezimalspeicheradresse). Auf diese Weise können wir nicht spezifizierte Felder identifizieren und diese in unserem Programm entsprechend verarbeiten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3