mengendalikan JSON dengan nama kelas C# tidak sah
Perpustakaan Newtonsoft JSON boleh berjuang dengan JSON yang mengandungi kekunci yang melanggar konvensyen C# penamaan (seperti kunci bermula dengan nombor). Mari kita periksa cara mengendalikan JSON seperti ini:
<code class="language-json">{ "1": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:40" }, "2": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:41" } }</code>
deserialization ke kamus
Pendekatan ini menggunakan kamus untuk menyimpan data, di mana kunci adalah pengenal numerik dari JSON dan nilai -nilai adalah objek C yang mewakili masa doa.
<code class="language-csharp">public class PrayerTimes { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } } // ... later in your code ... string json = @"{""1"":{""fajr"":""04:15"",""sunrise"":""05:42"",""zuhr"":""12:30"",""asr"":""15:53"",""maghrib"":""19:18"",""isha"":""20:40""},""2"":{""fajr"":""04:15"",""sunrise"":""05:42"",""zuhr"":""12:30"",""asr"":""15:53"",""maghrib"":""19:18"",""isha"":""20:41""}}"; var prayerTimesDictionary = JsonConvert.DeserializeObject<Dictionary<string, PrayerTimes>>(json); // Accessing the data: foreach (var kvp in prayerTimesDictionary) { Console.WriteLine($"Day {kvp.Key}: Fajr - {kvp.Value.fajr}"); // Access other prayer times similarly... }</code>
dan kemudian menggunakan PrayerTimes
untuk menghuraikan JSON ke dalam kamus di mana kunci adalah rentetan (mewakili nombor hari) dan nilai adalah JsonConvert.DeserializeObject
objek. Ini berkesan memintas sekatan penamaan C#. PrayerTimes
Atas ialah kandungan terperinci Bagaimana untuk menafikan JSON dengan kekunci bernama di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!