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

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

Linda Hamilton
发布: 2025-02-02 12:26:10
原创
659 人浏览过

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

>用无效的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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板