Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich JSON mit dynamischen Schlüsseln mithilfe eines Wörterbuchs in C#?

Wie deserialisiere ich JSON mit dynamischen Schlüsseln mithilfe eines Wörterbuchs in C#?

DDD
DDDOriginal
2025-01-17 10:17:09860Durchsuche

How to Deserialize JSON with Dynamic Keys Using a Dictionary in C#?

Flexible Handhabung der JSON-Deserialisierung mit dynamischen Schlüsseln unter Verwendung von Wörterbüchern

In der JSON-Welt kann die Begegnung mit JSON-Strings mit dynamischen und unvorhersehbaren Root-Schlüsseln bei der Deserialisierung in Objekte eine Herausforderung darstellen. Hier erfahren Sie, wie Sie dieses Problem mithilfe von Wörterbuchmethoden lösen können.

Betrachten Sie beispielsweise die folgende JSON-Zeichenfolge:

<code>{
    "daily": {
        "1337990400000": 443447,
        "1338076800000": 444693,
        "1338163200000": 452282,
        "1338249600000": 462189,
        "1338336000000": 466626
    }
}</code>

Da die Schlüssel dynamisch sind, reicht die Verwendung eines JavascriptSerializers mit einer Klassenstruktur hier nicht aus. Eine flexiblere Lösung besteht darin, die JSON-Zeichenfolge in ein Wörterbuch zu deserialisieren, was uns den einfachen Zugriff auf dynamische Schlüssel und die entsprechenden Werte ermöglicht.

<code class="language-csharp">var deser = new JavaScriptSerializer().Deserialize<Dictionary<string, Dictionary<string, int>>>(val);</code>

Diese Zeile erstellt ein Wörterbuchverzeichnis, in dem die Schlüssel Zeichenfolgen und die Werte Wörterbücher mit Zeichenfolgenschlüsseln und ganzzahligen Werten sind. Es ordnet dynamische Schlüssel in einer JSON-Zeichenfolge effektiv einem Zwischenwörterbuch zu.

Um auf bestimmte Daten zuzugreifen, können wir den folgenden Code verwenden:

<code class="language-csharp">var justDaily = deser["daily"];</code>

Die Variable justDaily enthält jetzt ein Wörterbuch, das das „tägliche“ Objekt aus einer JSON-Zeichenfolge darstellt. Wir können seine Schlüssel und Werte durchlaufen, um die dynamischen Schlüssel und entsprechenden Werte zu extrahieren.

<code class="language-csharp">foreach (string key in justDaily.Keys)
    Console.WriteLine(key + ": " + justDaily[key]);</code>

Dieser Ansatz ermöglicht uns den Umgang mit JSON-Strings mit dynamischen Stammschlüsseln durch Konvertierung in Wörterbuchstrukturen und bietet Flexibilität beim Zugriff auf die Daten. Sie können die Leistungsfähigkeit von Wörterbüchern voll ausnutzen, um JSON problemlos zu deserialisieren, selbst wenn die Schlüssel unvorhersehbar sind.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON mit dynamischen Schlüsseln mithilfe eines Wörterbuchs in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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