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

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

coldplay.xixi
coldplay.xixiOriginal
2020-06-24 12:00:584105Durchsuche

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!

Stellungnahme:
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