Heim >Backend-Entwicklung >Golang >Wie entmarshaliere ich JSON mit unterschiedlichen Antwortformaten in Go?
Unmarshalling von JSON mit unterschiedlichen Antwortformaten in Go
Beim Konsumieren externer Endpunkte können Sie auf JSON-Antworten mit unterschiedlichen Formaten stoßen. Der Umgang mit diesen Variationen kann eine Herausforderung sein, insbesondere wenn Sie Ihre Antwort in einen bestimmten Datentyp strukturieren möchten.
Das Dilemma
Sie stehen vor einem Endpunkt, der JSON zurückgibt in zwei Formaten:
Die Herausforderung besteht darin, eine Go-Struktur zu erstellen, die beide Antwortformate unterstützt.
Ein einfacher Ansatz
Zunächst haben Sie über die Verwendung von zwei separaten Strukturen nachgedacht, einer für jedes Format. Dieser Ansatz ist jedoch nicht ideal, da er mehrere Dekodierungsversuche und Fehlerbehandlung erfordert.
Eine elegantere Lösung
Eine elegantere Lösung besteht darin, den JSON in eine Schnittstelle zu entmarshallen {} Typ. Interface{} ist ein spezieller Typ in Go, der jeden Wert enthalten kann, unabhängig von seinem spezifischen Typ.
<code class="go">type Response struct { Message interface{} `json:"message"` }</code>
Nach dem Demarshalling können Sie eine Typzusicherung oder einen Typschalter verwenden, um den Typ des Nachrichtenfelds zu überprüfen .
<code class="go">switch x := r.Message.(type) { case string: // Handle string message case []interface{}: // Handle array message default: // Handle unexpected type }</code>
Mit diesem Ansatz können Sie beide Antwortformate in einer einzigen Struktur verarbeiten und so eine robustere und wartbarere Lösung bereitstellen.
Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON mit unterschiedlichen Antwortformaten in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!