php-Editor Yuzai führt Sie in die Verwendung von JSON-Arrays als Go-Strukturen ein. In der Go-Sprache ist ein JSON-Array eine allgemeine Datenstruktur, die zur Darstellung mehrerer Daten desselben Typs verwendet werden kann. Durch die Zuordnung von JSON-Arrays zu Go-Strukturen können wir sie einfach bedienen und verarbeiten. In diesem Artikel wird detailliert beschrieben, wie Sie das JSON-Paket in der Go-Sprache zum Parsen und Erstellen von JSON-Arrays verwenden und diese in entsprechende Go-Strukturen konvertieren, um eine effektive Verwaltung und Verarbeitung von Daten zu erreichen. Egal, ob Sie ein Anfänger in der Go-Sprache oder ein erfahrener Entwickler sind, dieser Artikel bietet Ihnen praktische Tipps und Methoden, die Ihnen helfen, JSON-Arrays besser zu verstehen und als strukturbezogenes Go-Wissen anzuwenden.
Ich versuche, ein Array von Objekten aus einer JSON-Datei aufzurufen, erhalte aber immer die Fehlermeldung: „Array kann nicht in Go-Wert vom Typ config.appconfig entmarshaliert werden“. Wie stelle ich sicher, dass meine Go-Struktur ein Array von Objekten in einer JSON-Datei aufruft? Im Folgenden sind die Konfigurationsdateien und JSON-Dateien aufgeführt, die ich zum Einrichten der Go-Struktur verwendet habe:
config.go
package config import ( "encoding/json" "io/ioutil" ) type easy struct { uid string `json:"uid"` } type auth struct { code string `json:"code"` } type appconfig struct { openapimode string `json:"openapimode"` openapiurl string `json:"openapiurl"` clientid string `json:"clientid"` secret string `json:"secret"` authmode string `json:"authmode"` easy easy `json:"easy"` auth auth `json:"auth"` deviceid string `json:"deviceid"` uid string `json:"-"` mqttuid string `json:"-"` accesstoken string `json:"-"` refreshtoken string `json:"-"` expiretime int64 `json:"-"` } var app = appconfig{ openapimode: "mqtt", openapiurl: "openapi.tuyacn.com", } func loadconfig() error { return parsejson("webrtc.json", &app) } func parsejson(path string, v interface{}) error { data, err := ioutil.readfile(path) if err != nil { return err } err = json.unmarshal(data, v) return err }
json-Datei
[ { "openAPIMode": "mqtt", "openAPIUrl": "openapi.tuyaus.com", "clientId": "*****", "secret": "**************", "authMode": "easy", "easy": { "uId": "**********" }, "auth": { "code": "" }, "deviceId": "***********" }, { "openAPIMode": "mqtt", "openAPIUrl": "openapi.tuyaus.com", "clientId": "*****", "secret": "**************", "authMode": "easy", "easy": { "uId": "**********" }, "auth": { "code": "" }, "deviceId": "***********" } ]
Vielen Dank im Voraus für Ihre Hilfe!
Ihre Konfigurations-JSON-Datei ist ein JSON-Array und Sie analysieren es in eine Struktur. Sie müssen es in ein Array von Strukturen analysieren.
Um Ihren Code zu korrigieren, ändern Sie die Initialisierung von app
in diese.
var app []appconfig func loadconfig() error { return parsejson("webrtc.json", &app) }
Dies ist der vollständige Beispielcode.
package main import ( "encoding/json" "fmt" "io/ioutil" ) type Easy struct { UID string `json:"uId"` } type Auth struct { Code string `json:"code"` } type APPConfig struct { OpenAPIMode string `json:"openAPIMode"` OpenAPIURL string `json:"openAPIUrl"` ClientID string `json:"clientId"` Secret string `json:"secret"` AuthMode string `json:"authMode"` Easy Easy `json:"easy"` Auth Auth `json:"auth"` DeviceID string `json:"deviceId"` UID string `json:"-"` MQTTUID string `json:"-"` AccessToken string `json:"-"` RefreshToken string `json:"-"` ExpireTime int64 `json:"-"` } var App []APPConfig func LoadConfig() error { return parseJSON("webrtc.json", &App) } func parseJSON(path string, v interface{}) error { data, err := ioutil.ReadFile(path) if err != nil { return err } err = json.Unmarshal(data, v) return err } func main() { err := LoadConfig() if err != nil { panic(err) } fmt.Printf("%+v\n", App) }
Das obige ist der detaillierte Inhalt vonJSON-Array als Go-Struktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!