Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man JSON-Antworten mit unterschiedlichen Formaten elegant verarbeiten?

Wie kann man JSON-Antworten mit unterschiedlichen Formaten elegant verarbeiten?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 10:42:03627Durchsuche

How to Elegantly Handle JSON Responses with Varying Formats?

Untersuchung von Ansätzen für den Umgang mit JSON-Antworten mit unterschiedlichen Formaten

In einem Szenario, in dem ein konsumierter Endpunkt JSON in verschiedenen Formaten zurückgibt, ist es entscheidend, einen eleganten Ansatz für den Umgang mit diesen Variationen zu finden . Das Dilemma entsteht durch die unveränderliche Natur des Endpunkts.

Eine gängige Strategie besteht darin, mehrere Strukturen zum Dekodieren zu verwenden, zu versuchen, in eine Struktur zu dekodieren, die eine Zeichenfolge erwartet, und bei Auftreten eines Fehlers zu einer alternativen Struktur mit einem Array zu wechseln. Während diese Methode die gewünschte Funktionalität erreicht, gibt es möglicherweise einen verfeinerten Ansatz.

Verwendung von Typzusicherungen und Typwechseln

Eine empfohlene Lösung besteht darin, den JSON in einen Interface{}-Wert zu entmarshalieren. Dieser Wert kann dann mithilfe von Typzusicherungen oder Typschaltern untersucht werden, um seinen tatsächlichen Typ zu bestimmen.

Ein Beispiel in Go demonstriert die Wirksamkeit dieses Ansatzes:

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

func main() {
    inputs := []string{
        `{"message":"Message"}`,
        `{"message":["ERROR_CODE"]}`,
    }

    for _, input := range inputs {
        var r Response
        if err := json.Unmarshal([]byte(input), &r); err != nil {
            panic(err)
        }
        switch x := r.Message.(type) {
        case string:
            fmt.Println("Success, message:", x)
        case []interface{}:
            fmt.Println("Error, code:", x)
        default:
            fmt.Println("Something else:", x)
        }
    }
}</code>

Die Ausgabe zeigt die erfolgreiche Handhabung und Unterscheidung der JSON-Antwortformate:

Success, message: Message
Error, code: [ERROR_CODE]

Durch die Nutzung dieses Ansatzes können Sie problemlos mit verschiedenen JSON-Formaten umgehen, sodass keine mehreren Strukturen oder Fehlerbehandlungen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann man JSON-Antworten mit unterschiedlichen Formaten elegant verarbeiten?. 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