Maison > Article > développement back-end > Comment puis-je désorganiser les données JSON et les stocker dans une structure dans Go
l'éditeur php Strawberry partage une méthode pour décompresser les données JSON et les stocker dans une structure de langage Go. JSON est un format d'échange de données couramment utilisé et le langage Go fournit une boîte à outils pratique pour analyser et traiter les données JSON. En utilisant le package "json" intégré au langage Go, nous pouvons facilement décomposer les données JSON en structures correspondantes, les stocker et les traiter. Cette méthode est simple et facile à comprendre et peut aider les développeurs à traiter efficacement les données JSON et à améliorer l'efficacité du développement. Ci-dessous, nous présenterons en détail comment utiliser le langage Go pour désorganiser les données JSON et les stocker dans une structure.
Ceci sont les données de test json que j'ai stockées en utilisant go struct dans mon programme
[ { "id": 393, "question": "the \"father\" of mysql is ______.", "description": null, "answers": { "answer_a": "bill joy", "answer_b": "stephanie wall", "answer_c": "bill gates", "answer_d": "michael widenius", "answer_e": null, "answer_f": null }, "multiple_correct_answers": "false", "correct_answers": { "answer_a_correct": "false", "answer_b_correct": "false", "answer_c_correct": "false", "answer_d_correct": "true", "answer_e_correct": "false", "answer_f_correct": "false" }, "correct_answer": "answer_a", "explanation": null, "tip": null, "tags": [ { "name": "mysql" } ], "category": "sql", "difficulty": "medium" } ]
C'est la fonction que j'ai écrite pour stocker les données mais je n'arrive pas à obtenir la réponse correcte au lieu d'obtenir une structure vierge lors de l'impression
func FetchQuiz(num int, category string) { // write code to read json file jsonFile, err := os.Open("test.json") if err != nil { fmt.Println(err) } defer jsonFile.Close() byteValue, _ := ioutil.ReadAll(jsonFile) fmt.Println(string(byteValue)) type Data struct { ID int Question string Description string Answers struct { A string B string C string D string E string F string } MultipleCorrectAnswers string CorrectAnswers struct { A string B string C string D string E string F string } CorrectAnswer string Explanation string Tip string Tags []struct { Name string } Category string Difficulty string } var QuizList2 []Data if err := json.Unmarshal(byteValue, &QuizList2); err != nil { fmt.Println(err.Error()) } fmt.Println(QuizList2)
Mais la réponse que j'ai obtenue était [{393 Le "père" de MySQL est ______. { } { } [{mysql}] sql medium}] J'ai tout essayé pour le résoudre mais je n'ai pas obtenu de réponse
champ json answer_a
不会单独映射到 go 字段 a
.
Changez le nom du champ go pour qu'il corresponde au nom du champ json (en ignorant la casse) :
answer_a string
Ou utilisez la balise go struct dans votre domaine :
A string `json:"answer_a"`
Faites de même pour les champs go restants qui ne correspondent pas au champ json correspondant.
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!