l'éditeur php Yuzai vous présente l'utilisation des tableaux JSON comme structures Go. En langage Go, le tableau JSON est une structure de données commune, qui peut être utilisée pour représenter plusieurs données du même type. En mappant les tableaux JSON aux structures Go, nous pouvons facilement les exploiter et les traiter. Cet article présentera en détail comment utiliser le package JSON dans le langage Go pour analyser et créer des tableaux JSON, et les convertir en structures Go correspondantes pour obtenir une gestion et un traitement efficaces des données. Que vous soyez débutant dans le langage Go ou développeur expérimenté, cet article vous apportera des conseils et méthodes pratiques pour vous aider à mieux comprendre et appliquer les tableaux JSON en tant que connaissances liées à la structure Go.
J'essaie d'appeler un tableau d'objets à partir d'un fichier json mais j'obtiens toujours l'erreur : "Impossible de transformer le tableau en valeur go de type config.appconfig". Comment puis-je m'assurer que ma structure go appelle un tableau d'objets dans un fichier json ? Voici les fichiers de configuration et les fichiers json que j'ai utilisés pour configurer la structure go :
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 }
fichier json
[ { "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": "***********" } ]
Merci d'avance pour votre aide !
Votre fichier json de configuration est un tableau json et vous l'analysez dans une structure, vous devez l'analyser dans un tableau de structures.
Pour corriger votre code, modifiez l'initialisation de app
par ceci.
var app []appconfig func loadconfig() error { return parsejson("webrtc.json", &app) }
Voici l'exemple de code complet.
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) }
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!