Dans Golang, l'analyse des données JSON dans des structures de données personnalisées peut être simple. Prenons un scénario dans lequel un fichier JSON contient un tableau d'objets avec des clés dynamiques :
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
Tenter d'analyser ce JSON dans une chaîne map[string] peut entraîner une erreur :
import ( "encoding/json" "io/ioutil" "log" ) type data map[string]string func main() { c, _ := ioutil.ReadFile("test.json") dec := json.NewDecoder(bytes.NewReader(c)) var d data dec.Decode(&d) // error: cannot unmarshal array into Go value of type data }
Pour résoudre ce problème et analyser le tableau JSON, un type personnalisé mytype est défini comme un tableau de cartes :
type mytype []map[string]string
En définissant la structure de données comme une tranche de cartes, le tableau JSON peut être analysé en conséquence :
import ( "encoding/json" "fmt" "io/ioutil" "log" ) 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) }
Cette approche permet d'analyser des tableaux JSON avec des clés dynamiques dans une structure de données Go.
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!