Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehen Sie beim Unmarshaling mit mehreren JSON-Formaten in Go um?

Wie gehen Sie beim Unmarshaling mit mehreren JSON-Formaten in Go um?

DDD
DDDOriginal
2024-10-26 12:30:03182Durchsuche

How Do You Handle Multiple JSON Formats in Go When Unmarshaling?

Umgang mit mehreren JSON-Formaten mit Unmarshaling in Go

Die Nutzung einer Drittanbieter-API, die JSON in verschiedenen Formaten zurückgibt, kann eine Herausforderung darstellen um mit den unterschiedlichen Strukturen in Go umzugehen. Eine häufige Herausforderung besteht darin, mit Antworten umzugehen, die entweder eine Zeichenfolge oder ein Array in einem „Nachrichten“-Feld enthalten können.

Ein einfacher Ansatz

Ein grundlegender Ansatz würde das Erstellen umfassen separate Strukturen für jedes Format:

<code class="go">type ResponseWithString struct {
    Message string `json:"message"`
}

type ResponseWithArray struct {
    Message []string `json:"message"`
}</code>

Sie können dann versuchen, den JSON nacheinander in beide Strukturen zu dekodieren. Wenn der erste Versuch (mit String) fehlschlägt, versuchen Sie es mit dem zweiten Versuch (mit Array).

Eine elegantere Lösung

Ein eleganterer Ansatz ist die Verwendung der Typ interface{}, der jede Art von Wert enthalten kann. Durch das Unmarshalling des JSON in eine Variable vom Typ interface{} können Sie seinen Typ dynamisch überprüfen und entsprechend reagieren.

<code class="go">type Response struct {
    Message interface{} `json:"message"`
}

func main() {
    ...
    var r Response
    ...
    switch x := r.Message.(type) {
        case string:
            // Handle string message
        case []interface{}:
            // Handle array message
    }
}</code>

Beachten Sie, dass JSON-Arrays standardmäßig in []interface{} entmarshallt werden, also Sie kann Typzusicherungen verwenden, um zwischen einer Zeichenfolge und einem Array zu unterscheiden.

Dieser Ansatz bietet mehr Flexibilität und Wiederverwendbarkeit des Codes, da Sie mehrere JSON-Formate mit einer einzigen Struktur verarbeiten können.

Das obige ist der detaillierte Inhalt vonWie gehen Sie beim Unmarshaling mit mehreren JSON-Formaten in Go um?. 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