In Go kann das Unmarshalling von JSON-Werten in benutzerdefinierte Skalartypen eine Herausforderung sein Unfähigkeit, den Skalarwert innerhalb der UnmarshalJSON-Methode zu ändern. Dieses Problem tritt auf, wenn UnmarshalJSON für von Skalaren abgeleitete Typen implementiert wird und die automatische Konvertierung von Zeichenfolgen in JSON in Werte des abgeleiteten Typs verhindert wird.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:
Hier ist eine korrigierte Implementierung der UnmarshalJSON-Methode für PersonID:
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 }
Stellen Sie außerdem sicher, dass das JSON-Tag in der MyType-Struktur übereinstimmt der Feldname im Beispiel-JSON. Aktualisieren Sie bei Bedarf json: „person“, damit es mit dem im Beispiel verwendeten JSON-Tag übereinstimmt.
Durch Befolgen dieser Schritte können Sie UnmarshalJSON für abgeleitete Skalartypen implementieren und so die automatische Konvertierung aktivieren von JSON-Strings in den gewünschten Werttyp. Dies ermöglicht ein müheloses Parsen von JSON-Daten in benutzerdefinierte Typen.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Strings in benutzerdefinierte Go-Skalartypen entmarshalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!