Heim > Backend-Entwicklung > C++ > Wie kann ich JSON mit numerisch benannten Schlüssel in C#deserialisieren?

Wie kann ich JSON mit numerisch benannten Schlüssel in C#deserialisieren?

Linda Hamilton
Freigeben: 2025-02-02 12:26:10
Original
601 Leute haben es durchsucht

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

JSON mit ungültigen C# -Klassnamen

umgehen

Die Newtonsoft JSON -Bibliothek kann mit JSON mit Tasten zu kämpfen haben, die gegen C# -Namenkonventionen verstoßen (wie Tasten mit Zahlen). Lassen Sie uns untersuchen, wie man mit JSON umgeht:

<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>
Nach dem Login kopieren

Da C# -Kassennamen nicht mit einer Nummer beginnen können, funktioniert eine direkte Deserialisierung nicht. Die Lösung besteht darin, sich in ein Wörterbuch zu befassen.

Deserialisierung zu einem Wörterbuch

Dieser Ansatz verwendet ein Wörterbuch, um die Daten zu speichern, wobei Schlüssel die numerischen Kennungen aus dem JSON und die Werte C# -Objekte sind, die die Gebetszeiten darstellen.

<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>
Nach dem Login kopieren

Dieser Code definiert eine PrayerTimes Klasse und verwendet dann JsonConvert.DeserializeObject, um den JSON in ein Wörterbuch zu analysieren, in dem Schlüssel Strings sind (die die Tageszahlen darstellen) und Werte PrayerTimes Objekte. Dies umgeht effektiv die C# -Benennungsbeschränkungen.

Das obige ist der detaillierte Inhalt vonWie kann ich JSON mit numerisch benannten Schlüssel in C#deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage