首页 >后端开发 >C++ >如何用C#中的数字命名键进行json?

如何用C#中的数字命名键进行json?

Linda Hamilton
Linda Hamilton原创
2025-02-02 12:26:10660浏览

How to Deserialize JSON with Numerically-Named Keys in C#?

>用无效的C#类名称处理JSON

>

> Newtonsoft JSON库可能会与JSON斗争,其中包含违反C#命名约定的密钥(例如按数字开始的键)。 让我们检查如何处理JSON:

>
<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>

>由于C#类名称不能以数字开头,因此直接的避难所不起作用。 解决方案是对词典进行的。

>

对字典

的挑选

此方法使用词典来存储数据,其中键是JSON的数值标识符,值是代表祈祷时间的c#对象。

>
<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>

此代码定义了APrayerTimes类,然后使用JsonConvert.DeserializeObject将JSON解析到键中,其中键为字符串(代表日数),并且值为PrayerTimes>对象。 这有效地绕过了C#命名限制。

以上是如何用C#中的数字命名键进行json?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn