Maison >développement back-end >Golang >Comment analyser une réponse HTTP JSON imbriquée dans Go ?

Comment analyser une réponse HTTP JSON imbriquée dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-29 18:36:18738parcourir

How to Parse a Nested JSON HTTP Response in Go?

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

Pour analyser une réponse JSON à partir d'une requête HTTP dans Golang, vous pouvez utiliser le décodage JSON pour convertir le corps de la réponse dans une structure qui reflète la structure JSON.

Code Exemple

Le code suivant montre comment analyser une réponse JSON avec des structures imbriquées pour obtenir la valeur de "ip" :

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
    "time"
)

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

func main() {

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

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

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

    if err != nil {
        log.Fatal(err)
    }

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

}

En tirant parti du décodage JSON pour créer une structure qui reflète la structure JSON, vous pouvez accéder et analyser dynamiquement les données dans la réponse, y compris les éléments imbriqués tels que le champ "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