Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat \'aksara tidak sah \'ï\' mencari permulaan nilai\' dalam JSON Unmarshal?
Permintaan perkhidmatan web kepada Microsoft Translator menghasilkan ralat apabila cuba menyahmarshal output JSON menggunakan json.Unmarshal. Ralat khusus yang dihadapi ialah "aksara tidak sah 'ï' mencari permulaan nilai."
Setelah memeriksa respons JSON sebagai rentetan, ia menjadi jelas bahawa data kelihatan sah . Walau bagaimanapun, membandingkan tatasusunan bait bagi respons dan versi data yang dijangkakan yang disusun secara manual mendedahkan percanggahan.
Percanggahan itu dikaitkan dengan kehadiran Tanda Pesanan Bait (BOM) dalam maklum balas. BOM ialah aksara khas yang mengenal pasti pengekodan fail teks, dalam kes ini, UTF-8.
BOM perlu dialih keluar sebelum menyahkod respons JSON. Ini boleh dicapai menggunakan baris kod berikut:
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
Fungsi bytes.TrimPrefix mengalih keluar BOM dari permulaan tatasusunan bait badan, membenarkan json.Unmarshal seterusnya operasi untuk diteruskan tanpa menemui aksara yang tidak sah ralat.
Ralat "aksara tidak sah 'ï' mencari permulaan nilai" semasa json.Unmarshal boleh disebabkan oleh BOM dalam respons JSON. Mengalih keluar BOM menggunakan bait.Fungsi TrimPrefix menyelesaikan isu dan membolehkan data berjaya dibongkar.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'aksara tidak sah \'ï\' mencari permulaan nilai\' dalam JSON Unmarshal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!