首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板