首頁 >後端開發 >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