Menghuraikan struktur JSON yang kompleks boleh mencabar dalam mana-mana bahasa pengaturcaraan, tetapi Go menyediakan alatan yang berguna untuk memudahkannya.
Dalam Go, pakej pengekodan/json menyediakan fungsi json.Unmarshal untuk menghuraikan data JSON. Seperti yang diketengahkan oleh soalan ini, cabaran utama terletak pada pengendalian struktur JSON yang kompleks dengan format yang tidak diketahui.
Seperti yang dicadangkan dalam jawapan, pendekatan yang berkesan ialah menggunakan Unmarshal untuk menyahkod JSON ke dalam antara muka antara muka kosong{}. Ini memberikan JSON yang dihuraikan kepada peta[rentetan]antara muka{} di bawah hud:
type MyStruct struct { K1 string `json:"k1"` K3 int `json:"k3"` Result [][]interface{} `json:"result"` } var s MyStruct err := json.Unmarshal(jsonBytes, &s)
Selepas penyahkodan, peta yang terhasil boleh diakses menggunakan f.(map[rentetan]antaramuka{}).
Untuk mengekstrak data, ulangi peta dan gunakan suis jenis untuk menentukan jenis setiap nilai:
for k, v := range f { switch v := v.(type) { case string: case int: case []interface{}: case map[string]interface{}: } }
Ini membolehkan anda mengendalikan nilai pelbagai jenis dengan selamat, memastikan keselamatan jenis semasa menghuraikan struktur JSON dinamik.
The dengan syarat sampel JSON mengandungi tatasusunan dan objek bersarang dalam medan "hasil". Dalam Go, ini diterjemahkan kepada [][]antara muka{} dan peta[rentetan]antara muka{}, masing-masing. Menggunakan pendekatan di atas, anda boleh mengakses dan memeriksa struktur ini secara berstruktur.
Dengan memahami konsep penyahkodan ke dalam antara muka dan memanfaatkan suis jenis, anda boleh mengendalikan senario penghuraian JSON yang rumit dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Pakej `pengekodan/json` Go Boleh Menghuraikan Struktur JSON Kompleks dan Tidak Diketahui dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!