Di Golang, menghuraikan data JSON ke dalam struktur data tersuai boleh menjadi mudah. Pertimbangkan senario di mana fail JSON mengandungi tatasusunan objek dengan kekunci dinamik:
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
Percubaan menghuraikan JSON ini ke dalam rentetan[rentetan] peta boleh mengakibatkan ralat:
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 }
Untuk menyelesaikan isu ini dan menghuraikan tatasusunan JSON, jenis mytype tersuai ditakrifkan sebagai tatasusunan peta:
type mytype []map[string]string
Dengan mentakrifkan struktur data sebagai sekeping peta, tatasusunan JSON boleh dihuraikan dengan sewajarnya:
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) }
Pendekatan ini membenarkan penghuraian tatasusunan JSON dengan kekunci dinamik ke dalam struktur data Go.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Tatasusunan JSON dengan Kekunci Dinamik ke dalam Struktur Data Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!