Maison >développement back-end >Golang >Comment extraire une adresse IP d'une réponse HTTP JSON dans Golang ?

Comment extraire une adresse IP d'une réponse HTTP JSON dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-01 18:50:10785parcourir

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

Analyser la réponse HTTP JSON à l'aide de Golang

L'analyse des réponses HTTP JSON dans Go permet aux développeurs d'extraire et de traiter les données efficacement. Cette question concerne un scénario dans lequel un utilisateur cherche à extraire l'adresse IP d'une réponse JSON.

Le code Go fourni tente d'analyser le JSON à l'aide de la fonction json.Unmarshal. Cependant, il attribue les données décodées à une structure svc qui ne reflète pas fidèlement la structure JSON.

Pour analyser correctement le JSON, vous devez définir des structures qui reflètent la structure JSON, comme démontré dans le code suivant :

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"`
}

Une fois que vous avez défini les structures, vous pouvez utiliser json.NewDecoder pour décoder la réponse JSON en une instance de l'exemple struct :

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

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

En utilisant cette approche, vous pouvez accéder à l'adresse IP en parcourant les tranches Sous-ensembles et Adresses dans l'exemple analysé struct :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn