Maison >développement back-end >Golang >Comment analyser un tableau JSON de paires clé-valeur dynamiques dans Go ?
Analyse d'un tableau JSON dans une structure de données dans Go
Lorsque vous travaillez avec des données JSON dans Go, il est essentiel de comprendre les structures de données appropriées pour différents formats JSON. Dans ce cas, nous avons affaire à un tableau JSON de paires clé-valeur dynamiques.
Problème :
Vous essayez d'analyser un fichier JSON contenant un tableau de Objets JSON. Cependant, l'utilisation d'une simple chaîne map[string] pour représenter les données entraîne une erreur :
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
type data map[string]string c, _ := ioutil.ReadFile("c") dec := json.NewDecoder(bytes.NewReader(c)) var d data dec.Decode(&d) // Error: cannot unmarshal array into Go value of type main.data
Solution :
Pour analyser correctement le JSON tableau, vous devez définir une structure de données qui représente le tableau d'objets. Ceci peut être réalisé en utilisant un type personnalisé qui intègre une tranche de cartes.
type mytype []map[string]string
Code :
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type mytype []map[string]string func main() { var data mytype file, err := ioutil.ReadFile("test.json") if err != nil { log.Fatal(err) } err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } fmt.Println(data) }
Exemple :
Pour le fichier JSON fourni :
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
La sortie du code serait être :
[{map[a:1]} {map[b:2]} {map[c:3]}]
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!