Memahami Penegasan Antara Muka dalam Penyahserikatan JSON
Dalam Go, penyahserikan data JSON ke dalam struktur data tertentu kadangkala boleh membawa kepada ralat penukaran antara muka. Ini biasanya berlaku apabila cuba untuk menegaskan jenis antara muka ke dalam jenis struct yang berbeza.
Pertimbangkan contoh berikut:
type Data struct { Content string Links []string }
Apabila menyahsiri JSON menjadi pembolehubah jenis Data, adalah penting untuk menegaskan bahawa pembolehubah antara muka (anInterface) mengandungi jenis data yang dijangkakan. Menetapkan ungkapan berikut akan menghasilkan ralat masa jalan:
AData2 = anInterface.(Data)
Ralat ini berlaku kerana Go menjangkakan anInterface ialah peta[rentetan]antara muka{}, manakala ia sebenarnya mengandungi objek jenis Data. Untuk menyelesaikan masalah ini, adalah penting untuk memastikan bahawa anInterface merujuk nilai yang berstruktur serasi dengan Data.
Pendekatan Penyahserikatan Betul
Cara yang sesuai untuk menyahsiri data JSON menjadi Struktur data adalah untuk membongkar secara langsung ke dalamnya pembolehubah:
var AData2 Data err := json.Unmarshal([]byte(value), &AData2) if err != nil { panic(err) }
Dengan berbuat demikian, Go secara automatik mengendalikan penukaran antara JSON dan jenis data yang diingini, memastikan tiada ralat penegasan jenis berlaku semasa masa jalan.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Ralat Penegasan Antara Muka apabila Menyahseri JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!