Maison > développement back-end > Golang > Comment extraire la valeur « ip » d'une réponse HTTP JSON dans Golang ?

Comment extraire la valeur « ip » d'une réponse HTTP JSON dans Golang ?

Linda Hamilton
Libérer: 2024-12-02 10:28:11
original
993 Les gens l'ont consulté

How to Extract the

Analyser la réponse HTTP JSON à l'aide de Golang : récupérer la valeur de "ip"

Dans cet article, nous aborderons un problème lié à l'analyse Réponses HTTP JSON dans Golang et plus particulièrement, comment récupérer la valeur de « ip » à partir d'un exemple de sortie JSON similaire à celle fournie dans le question.

Le but est de créer un programme capable d'extraire l'adresse IP de la réponse JSON et de l'imprimer sur la console. Pour y parvenir, nous utiliserons la fonctionnalité d'analyse JSON intégrée de Golang.

Commençons par définir une structure personnalisée nommée Exemple qui reflète la structure de la réponse JSON. Cette structure aura des champs pour « type », « données » et « sous-ensembles ». De même, nous définirons des structures imbriquées pour Subset et Address pour englober les parties respectives de la réponse JSON.

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"`
}
Copier après la connexion

Dans la fonction main(), nous lirons la réponse JSON de la requête HTTP et la décoderons. dans la structure Exemple. Cela impliquera d'utiliser le type json.Decoder pour analyser le flux d'octets du corps de la réponse.

m := []byte(`{...}`) // Sample JSON response from HTTP request body

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

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

if err != nil {
    log.Fatal(err)
}
Copier après la connexion

Une fois la réponse JSON décodée dans la structure Exemple, nous pouvons accéder à la valeur "ip" en parcourant les tranches Sous-ensembles et Adresses.

for _, s := range val.Subsets {
    for _, a := range s.Addresses {
        fmt.Println(a.IP)
    }
}
Copier après la connexion

La sortie de ce programme sera la valeur "ip" souhaitée, qui dans cet exemple, est "192.168.103.178."

En utilisant cette approche, nous pouvons analyser les réponses HTTP JSON et récupérer des valeurs spécifiques, telles que "ip", de manière propre et efficace en utilisant les capacités d'analyse JSON de Golang.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal