Heim > Backend-Entwicklung > Golang > Was soll ich tun, wenn Golang JSON nicht analysieren kann?

Was soll ich tun, wenn Golang JSON nicht analysieren kann?

coldplay.xixi
Freigeben: 2020-06-24 12:00:58
Original
4152 Leute haben es durchsucht

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"
}]
}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage