Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menyahmarshal data JSON dan menyimpannya dalam struktur dalam Go
editor php Strawberry berkongsi kaedah membongkar data JSON dan menyimpannya dalam struktur bahasa Go. JSON ialah format pertukaran data yang biasa digunakan, dan bahasa Go menyediakan kit alat yang mudah untuk menghuraikan dan memproses data JSON. Dengan menggunakan pakej "json" terbina dalam bahasa Go, kami boleh menguraikan data JSON ke dalam struktur yang sepadan, menyimpan dan memprosesnya dengan mudah. Kaedah ini mudah dan mudah difahami serta boleh membantu pembangun memproses data JSON dengan cekap dan meningkatkan kecekapan pembangunan. Di bawah ini kami akan memperkenalkan secara terperinci cara menggunakan bahasa Go untuk menyahmarshal data JSON dan menyimpannya dalam struktur.
Ini adalah data ujian json yang saya simpan menggunakan go struct dalam program saya
[ { "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" } ]
Ini adalah fungsi yang saya tulis untuk menyimpan data tetapi saya tidak dapat respons yang betul daripada mendapatkan struktur kosong semasa mencetak
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)
Tetapi jawapan yang saya dapat ialah [{393 "Bapa" mysql ialah ______. { } { } [{mysql}] sql medium}] Saya telah mencuba segala-galanya untuk menyelesaikannya tetapi tidak mendapat respons
json field answer_a
不会单独映射到 go 字段 a
.
Tukar nama medan pergi agar sepadan dengan nama medan json (abaikan huruf besar):
answer_a string
Atau gunakan go teg struct dalam medan anda:
A string `json:"answer_a"`
Lakukan perkara yang sama untuk baki medan go yang tidak sepadan dengan medan json yang sepadan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyahmarshal data JSON dan menyimpannya dalam struktur dalam Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!