Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mencapai Pembongkaran JSON Sensitif Kes dalam Go?
Apabila menggunakan JSON, mungkin timbul situasi di mana pengendalian sensitif huruf besar dikehendaki semasa proses unmarshaling. Walau bagaimanapun, pustaka JSON standard dalam Go mengutamakan padanan tidak sensitif huruf besar-besaran, yang berpotensi membawa kepada tingkah laku yang tidak dijangka.
Mengikut dokumentasi rasmi, semasa unmarshaling, kunci JSON masuk adalah berbanding dengan nama medan struct atau teg. Perpustakaan lebih suka padanan tepat tetapi juga bertolak ansur pada yang tidak peka huruf besar-besaran. Ini boleh membawa kepada konflik jika, sebagai contoh, anda menerima JSON yang mengandungi kunci seperti "e" dan "E" dan ingin menyahmarshal varian "e" sahaja.
Malangnya, perpustakaan JSON standard pada masa ini tidak menawarkan mekanisme mudah untuk melumpuhkan unmarshalling tidak sensitif huruf. Dokumentasi di https://golang.org/pkg/encoding/json/#Unmarshal secara eksplisit menyatakan:
"Unmarshal memadankan kunci objek masuk dengan kunci yang digunakan oleh Marshal (sama ada nama medan struct atau tegnya) , lebih suka padanan tepat tetapi juga menerima padanan yang tidak sensitif huruf."
Memandangkan perpustakaan standard tidak menyediakan penyelesaian luar biasa, satu penyelesaian yang mungkin adalah dengan mencipta penyahkod JSON tersuai dengan melanjutkan pakej pengekodan/json. Penyahkod ini boleh melaksanakan mekanisme unmarshalling sensitif huruf besar peringkat medan yang mengabaikan teg dengan sarung yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pembongkaran JSON Sensitif Kes dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!