Bagaimana untuk Mencapai Pembongkaran JSON Sensitif Kes dalam Go?

Barbara Streisand
Lepaskan: 2024-11-10 01:27:02
asal
368 orang telah melayarinya

How to Achieve Case-Sensitive JSON Unmarshaling in Go?

Mengendalikan Penyahmarshalan JSON Sensitif Kes

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.

Gelagat Padanan Tidak Peka Huruf

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.

Kurang Kes-Sensitif Unmarshalling

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."

Ganti Penyelesaian

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan