Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn Golang JSON nicht analysieren kann?
Golang kann JSON-Lösung nicht analysieren:
Die Großschreibung des Anfangsbuchstabens von Golang bedeutet, dass der Zugriff von Mitgliedern geändert wird Berechtigungen in Kleinbuchstaben werden privat. Verschiedene Pakete können nicht auf die privaten Mitglieder anderer Pakete zugreifen, was dazu führt, dass json.Marshal
(das Reflect verwendet) den Inhalt nicht wiedergeben kann.
Wenn Sie beispielsweise die Methode json.Marshal(hp)
unter der Hauptmethode erneut implementieren, können die Mitgliedsvariablen in der Struktur Kleinbuchstaben sein.
Hinweis: Auf Mitgliedsvariablen in
struct
in Kleinbuchstaben kann nur innerhalb des aktuellen Pakets zugegriffen werden.
Golang-HTTP-Anfrage-Json-Antwort-Analysemethode
Die Antwortdaten lauten wie folgt:
{ "number": 3, "message": "success", "people": [{ "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" }] }
Das Folgende ist eine HTTP-Anfrage und analysiert die JSON-Daten in die Struktur Beispiel
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) }
Empfohlenes Tutorial: „go language Tutorial“
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Golang JSON nicht analysieren kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!