Ralat Penghuraian Aksara Tidak Dijangka dalam Json.NET
Apabila bekerja dengan Json.NET, pengguna mungkin menghadapi pengecualian: "Watak tidak dijangka ditemui semasa nilai penghuraian: e. Laluan '', baris 0, kedudukan 0." Ralat ini menandakan bahawa data JSON dinyahsiri menjadi objek mengandungi aksara atau format yang tidak sah.
Untuk menyelesaikan isu ini, adalah penting untuk mengesahkan bahawa data JSON yang digunakan adalah sah dan mematuhi piawaian JSON. Salah satu punca biasa ralat ini ialah cuba menyahsiri laluan fail dan bukannya data JSON sebenar.
Dalam kod yang disediakan, baris berikut berkaitan dengan isu ini:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
Kaedah File.WriteAllText() menulis data ke fail, tetapi tmpfile ialah rentetan yang mewakili laluan fail, bukan data JSON sebenar. Apabila JsonConvert.DeserializeObject() kemudiannya digunakan untuk membaca daripada tmpfile, ia cuba untuk menyahsiri laluan fail sebagai JSON, mengakibatkan ralat.
Untuk membetulkannya, anda perlu membaca data JSON daripada fail dan hantar terus ke JsonConvert.DeserializeObject(). Berikut ialah kod yang diperbetulkan:
string jsonString = File.ReadAllText(tmpfile); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(jsonString);
Dengan menggunakan File.ReadAllText() untuk membaca fail ke dalam rentetan dahulu, data JSON yang betul diberikan kepada JsonConvert.DeserializeObject(), yang sepatutnya menyelesaikan masalah "Unexpected aksara ditemui semasa menghuraikan ralat nilai".
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Watak yang tidak dijangka semasa menghurai nilai' dalam Json.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!