Ralat Aksara Tidak Dijangka dalam Json.NET
Semasa menghuraikan data JSON menggunakan Json.NET, anda mungkin menghadapi mesej ralat:
"Watak yang tidak dijangka ditemui semasa menghuraikan nilai: e. Laluan '', baris 0, kedudukan 0."
Penjelasan
Ralat ini biasanya berlaku apabila rentetan JSON yang dihuraikan tidak dibentuk dengan baik atau mengandungi aksara yang tidak sah. Berdasarkan mesej ralat, isu itu ditemui pada permulaan rentetan JSON.
Penggunaan Json.NET
Kod anda mencadangkan bahawa anda sedang mensiri dan menyahsiri objek jenis ViewerStatsFormat. Proses bersiri menggunakan JsonConvert.SerializeObject berfungsi dengan betul dan fail JSON yang anda kongsi nampaknya sah.
Isu Penyahserikatan
Walau bagaimanapun, masalah timbul apabila anda mencuba untuk menyahsiri fail JSON kembali ke dalam objek ViewerStatsFormat menggunakan JsonConvert.DeserializeObject. Nampaknya laluan fail dihantar ke DeserializeObject, bukannya rentetan JSON itu sendiri.
Penyelesaian
Untuk menyelesaikan isu ini, pastikan anda lulus JSON sebenar rentetan kepada DeserializeObject dan bukannya laluan fail. Berikut ialah bahagian kod anda yang diperbetulkan:
try { string json = File.ReadAllText(tmpfile); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(json); // other stuff } catch(Exception ex) { // error logging stuff }
Dengan membaca fail JSON ke dalam rentetan dan menghantarnya ke DeserializeObject, anda harus menyelesaikan ralat "Watak tidak dijangka ditemui semasa menghuraikan nilai".
Atas ialah kandungan terperinci Mengapa Json.NET Melemparkan Ralat 'Watak Tidak Dijangka' Apabila Menyahsiri, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!