Heim >Backend-Entwicklung >Golang >Wie extrahiere ich eine IP-Adresse aus einer JSON-HTTP-Antwort in Golang?

Wie extrahiere ich eine IP-Adresse aus einer JSON-HTTP-Antwort in Golang?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 18:50:10784Durchsuche

How to Extract an IP Address from a JSON HTTP Response in Golang?

JSON-HTTP-Antworten mit Golang analysieren

Das Parsen von JSON-HTTP-Antworten in Go ermöglicht es Entwicklern, Daten effizient zu extrahieren und zu verarbeiten. Diese Frage befasst sich mit einem Szenario, in dem ein Benutzer versucht, die IP-Adresse aus einer JSON-Antwort zu extrahieren.

Der bereitgestellte Go-Code versucht, den JSON mithilfe der json.Unmarshal-Funktion zu analysieren. Allerdings weist es die dekodierten Daten einer Struktur svc zu, die die JSON-Struktur nicht genau widerspiegelt.

Um das JSON korrekt zu analysieren, sollten Sie Strukturen definieren, die die JSON-Struktur widerspiegeln, wie im folgenden Code gezeigt:

type Example struct {
    Type    string   `json:"type,omitempty"`
    Subsets []Subset `json:"subsets,omitempty"`
}

type Subset struct {
    Addresses []Address `json:"addresses,omitempty"`
}

type Address struct {
    IP string `json:"IP,omitempty"`
}

Sobald Sie die Strukturen definiert haben, können Sie json.NewDecoder verwenden, um die JSON-Antwort in eine Instanz des Beispiels zu dekodieren struct:

r := bytes.NewReader(m)
decoder := json.NewDecoder(r)

val := &Example{}
err := decoder.Decode(val)

Mit diesem Ansatz können Sie auf die IP-Adresse zugreifen, indem Sie die Teilmengen- und Adressabschnitte innerhalb der analysierten Beispielstruktur durchlaufen:

for _, s := range val.Subsets {
    for _, a := range s.Addresses {
        fmt.Println(a.IP)
    }
}

Das obige ist der detaillierte Inhalt vonWie extrahiere ich eine IP-Adresse aus einer JSON-HTTP-Antwort in Golang?. 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