Wie kann JSON Unmarshal mit von Skalaren abgeleiteten Werttypen in Go umgehen?
In Go werden Skalarwerte häufig zur Darstellung einfacher Datentypen verwendet wie ganze Zahlen und Strings. Von diesen Skalarwerten abgeleitete benutzerdefinierte Typen erfordern möglicherweise eine besondere Behandlung beim JSON-Unmarshaling, um eine genaue Zuordnung sicherzustellen.
Problemstellung
Implementieren Sie die UnmarshalJSON-Methode für einen benutzerdefinierten Typ, der a erweitert Skalare Ganzzahl in Go. Das Ziel besteht darin, eingehende JSON-Zeichenfolgen automatisch in Werte dieses benutzerdefinierten Typs umzuwandeln.
Lösung
Um die Einschränkungen zu überwinden, die UnmarshalJSON beim Erwarten einer Struktur mit sich bringt, führen Sie die folgenden Schritte aus:
Beispielimplementierung
func (intValue *PersonID) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return err } *intValue = Lookup(s) return nil }
Zusätzliche Überlegungen
Mit diesen implementierten Techniken können Sie JSON-Strings effektiv in Ihre benutzerdefinierten Typen entpacken, die aus Skalarwerten in Go abgeleitet sind.
Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON-Strings in benutzerdefinierte Go-Typen, die von Skalarwerten abgeleitet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!