Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshal Struktur JSON Dinamik dengan Kekunci Jenis dalam Go?
Menyahmarshaling Struktur JSON Dinamik dengan Kunci Jenis
Dalam situasi di mana dokumen JSON mengandungi struktur heterogen dengan medan ditaip secara dinamik, adalah perlu untuk mencipta strategi untuk unmarshaling cekap ke dalam struct Go. Keperluan biasa adalah untuk menyahmarshal dokumen JSON ke dalam struktur tanpa memperkenalkan medan generik tambahan sebagai ruang letak untuk medan varian.
Untuk mencapai matlamat ini, satu pendekatan adalah untuk mencipta antara muka yang mewakili sifat biasa antara medan varian. Dalam kes ini, antara muka Something dengan kaedah GetType() boleh ditakrifkan. Selain itu, beberapa struktur dan fungsi boleh dibina untuk menyokong pelbagai jenis medan dinamik dengan sifat yang berbeza, seperti DynamicTypeA dan DynamicTypeB.
Langkah seterusnya melibatkan pelaksanaan json.Unmarshaler untuk jenis BigStruct. Kaedah unmarshaling tersuai ini boleh memeriksa medan Type dalam objek JSON dynamic_field dan secara dinamik menentukan jenis medan DynamicField. Sebagai contoh, jika medan Jenis ialah "A", medan DynamicField hendaklah ditetapkan kepada tika DynamicTypeA. Ini membenarkan pemilihan jenis masa jalan berdasarkan struktur JSON.
Pendekatan alternatif, jika jenis DynamicField tidak boleh diubah, adalah untuk melaksanakan kaedah UnmarshalJSON pada jenis BigStruct dan mengisytiharkan jenis sementara untuk mengelakkan pengulangan . Jenis sementara ini berfungsi sebagai perantara untuk proses unmarshaling, menghalang rekursi tak terhingga.
Dengan menerima teknik ini, adalah mungkin untuk membongkar struktur JSON dinamik secara berkesan ke dalam struktur Go, membolehkan pengendalian fleksibel dan manipulasi jenis medan varian .
Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Struktur JSON Dinamik dengan Kekunci Jenis dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!