Maison > Article > développement back-end > Comment analyser un champ « ip » à partir d'une réponse HTTP JSON dans Go ?
Analyse des réponses HTTP JSON dans Go
Dans cet article, nous aborderons un défi de codage courant : analyser les réponses JSON à partir de requêtes HTTP dans le langage de programmation Go. Nous allons passer en revue un exemple pour vous aider à déchiffrer la réponse et à extraire des valeurs spécifiques, telles que le champ « ip ».
Considérez la sortie curl suivante comme exemple :
{ "type":"example", "data":{ "name":"abc", "labels":{ "key":"value" } }, "subsets":[ { "addresses":[ { "ip":"192.168.103.178" } ], "ports":[ { "port":80 } ] } ] }
Notre objectif est de récupérer la valeur du champ "ip" à partir de cette réponse.
JSON basé sur Struct Décodage
Pour décoder la réponse JSON, nous allons créer des structures qui reflètent la structure JSON. Les structures dans Go servent de modèles pour nos données, définissant leur forme et leurs champs.
Voici un exemple de code qui illustre le décodage JSON basé sur la structure :
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() { jsonResponse := `{ "type": "example", "data": { "name": "abc", "labels": { "key": "value" } }, "subsets": [ { "addresses": [ { "ip": "192.168.103.178" } ], "ports": [ { "port": 80 } ] } ] }` r := bytes.NewReader([]byte(jsonResponse)) decoder := json.NewDecoder(r) val := &Example{} err := decoder.Decode(val) if err != nil { log.Fatal(err) } for _, s := range val.Subsets { for _, a := range s.Addresses { fmt.Println(a.IP) } } }
Décoder une clé spécifique
Dans le code ci-dessus, nous utilisons une structure appelée Exemple pour correspondre à la structure de la réponse JSON. À l'aide du décodeur, nous sommes ensuite en mesure de décoder la réponse dans notre structure Exemple.
Pour extraire la valeur "ip", nous accédons à la tranche Adresses, qui est une tranche de structures Adresse. Chaque structure d'adresse contient le champ "ip", nous permettant d'imprimer sa valeur.
En suivant ces étapes, vous pouvez analyser efficacement les réponses HTTP JSON dans Go et récupérer des valeurs de données spécifiques, comme le champ "ip" dans cet exemple. N'oubliez jamais de créer des structures qui correspondent à la structure JSON et d'utiliser un décodeur pour les remplir avec les données de réponse.
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!