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

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

Susan Sarandon
Susan Sarandonoriginal
2024-12-09 02:36:10911parcourir

How Can I Extract the

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

Pour récupérer la valeur de "ip" à partir de la réponse JSON fournie, il est recommandé d'utiliser des paramètres personnalisés des structures qui reflètent la structure JSON et décodent la réponse en conséquence. Considérez le code suivant :

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
)

// Define structs to match the JSON structure
type Example struct {
    Type    string   `json:"type"`
    Subsets []Subset `json:"subsets"`
}

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

type Address struct {
    IP string `json:"ip"`
}

func main() {
    // Define the JSON input
    m := []byte(`{"type":"example","data":{"name":"abc","labels":{"key":"value"}},"subsets":[{"addresses":[{"ip":"192.168.103.178"}],"ports":[{"port":80}]}]}`)

    // Create a reader from the JSON input
    r := bytes.NewReader(m)
    decoder := json.NewDecoder(r)

    // Decode the JSON into the Example struct
    val := &Example{}
    if err := decoder.Decode(val); err != nil {
        log.Fatal(err)
    }

    // Iterate over the Subsets and Addresses slices to access each IP
    for _, s := range val.Subsets {
        for _, a := range s.Addresses {
            fmt.Println(a.IP)
        }
    }
}

Cette approche permet de décoder la réponse JSON en structures personnalisées, offrant la possibilité de parcourir des tranches et de récupérer des valeurs spécifiques en accédant aux membres de la structure (par exemple, a.IP). Le code fourni démontre le flux de travail de bout en bout consistant à lire une réponse JSON, à la décoder en structures et à extraire des valeurs spécifiques.

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