Maison > développement back-end > Golang > le corps du texte

Que dois-je faire si Golang ne peut pas analyser JSON ?

coldplay.xixi
Libérer: 2020-06-24 12:00:58
original
4108 Les gens l'ont consulté

Que dois-je faire si Golang ne peut pas analyser JSON ?

Golang ne peut pas analyser la solution json :

La mise en majuscule de la première lettre de golang signifie changer l'accès des membres Les autorisations en minuscules deviennent privées. Différents packages ne peuvent pas accéder aux membres privés d'autres packages, ce qui empêche json.Marshal (qui utilise la réflexion) de refléter le contenu.

Par exemple, si vous réimplémentez la méthode json.Marshal(hp) sous la méthode main, les variables membres de la structure peuvent être en minuscules.

Remarque : les variables membres en minuscules

struct ne sont accessibles que dans le package actuel.

Méthode d'analyse de la réponse Json de la requête HTTP Golang

Les données de réponse sont les suivantes :

{
"number": 3,
"message": "success",
"people": [{
"craft": "ISS",
"name": "Chris Cassidy"
}, {
"craft": "ISS",
"name": "Anatoly Ivanishin"
}, {
"craft": "ISS",
"name": "Ivan Vagner"
}]
}
Copier après la connexion

Ce qui suit est une requête http et analyse les données json dans la structure Exemple

package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"time"
)
type people struct {
Number int `json:"number"`
}
func main() {
url := "http://api.open-notify.org/astros.json"
spaceClient := http.Client{
Timeout: time.Second * 2, // Maximum of 2 secs
}
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("User-Agent", "spacecount-tutorial")
res, getErr := spaceClient.Do(req)
if getErr != nil {
log.Fatal(getErr)
}
if res.Body != nil {
    defer res.Body.Close()
}
body, readErr := ioutil.ReadAll(res.Body)
if readErr != nil {
log.Fatal(readErr)
}
people1 := people{}
jsonErr := json.Unmarshal(body, &people1)
if jsonErr != nil {
log.Fatal(jsonErr)
}
fmt.Println(people1.Number)
}
Copier après la connexion

Tutoriel recommandé : "go tutoriel de langue"

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal