>用无效的C#类名称处理JSON
>> Newtonsoft JSON库可能会与JSON斗争,其中包含违反C#命名约定的密钥(例如按数字开始的键)。 让我们检查如何处理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" } }
>由于C#类名称不能以数字开头,因此直接的避难所不起作用。 解决方案是对词典进行的。
>对字典
的挑选此方法使用词典来存储数据,其中键是JSON的数值标识符,值是代表祈祷时间的c#对象。
>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... }
此代码定义了APrayerTimes
类,然后使用JsonConvert.DeserializeObject
将JSON解析到键中,其中键为字符串(代表日数),并且值为PrayerTimes
>对象。 这有效地绕过了C#命名限制。
以上是如何用C#中的数字命名键进行json?的详细内容。更多信息请关注PHP中文网其他相关文章!