Heim > Backend-Entwicklung > C++ > Wie deserialisiere ich JSON mit dynamischen Schlüsseln in eine C#-Liste von Objekten?

Wie deserialisiere ich JSON mit dynamischen Schlüsseln in eine C#-Liste von Objekten?

Patricia Arquette
Freigeben: 2025-01-19 19:23:08
Original
551 Leute haben es durchsucht

How to Deserialize JSON with Dynamic Keys into a C# List of Objects?

Dynamische Schlüssel-JSON-Deserialisierung in C#

In einigen Fällen kann eine Webanforderung eine JSON-Antwort mit dynamischen Schlüsseln zurückgeben, was bei der Deserialisierung in ein C#-Objekt zu Herausforderungen führt. Betrachten Sie beispielsweise die folgende JSON-Antwort:

<code>{
"nasdaq_imbalance": 
{
    "name": "nasdaq_imbalance", 
    "group": "Market Data", 
    "description": null
},
"DXOpen IM": 
{
    "name": "DXOpen IM", 
    "group": "Daily",
    "description": null
}, 
"Float Shares": 
{
    "name": "Float Shares", 
    "group": "Daily", 
    "description": null
}, 
}</code>
Nach dem Login kopieren

Das Ziel besteht darin, diesen JSON in eine Liste von C#-Objekten des Typs zu deserialisieren:

<code>public class Dataset    {
    public string name { get; set; } 
    public string group { get; set; } 
    public string description { get; set; } 
}</code>
Nach dem Login kopieren

Dazu können wir die Leistungsfähigkeit von Json.NET nutzen. Der folgende Codeausschnitt zeigt, wie:

<code class="language-csharp">Dictionary<string, Dataset> datasets = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);</code>
Nach dem Login kopieren

Diese Codezeile deserialisiert JSON in ein Wörterbuch, in dem die Schlüssel dynamische Schlüssel in der JSON-Antwort sind (z. B. „nasdaq_imbalance“, „DXOpen IM“ usw.) und die Werte Instanzen der Dataset-Klasse sind.

Von diesem Wörterbuch aus können Sie über ihre dynamischen Schlüssel einfach auf die Datensätze zugreifen und diese nach Bedarf verwenden. Um beispielsweise mit dem Schlüssel „nasdaq_imbalance“ auf den Datensatz zuzugreifen:

<code class="language-csharp">Dataset nasdaqImbalanceDataset = datasets["nasdaq_imbalance"];</code>
Nach dem Login kopieren

Beachten Sie, dass diese Lösung nur funktioniert, wenn die dynamischen Schlüssel im Voraus bekannt sind. Wenn sich die Schlüssel dynamisch ändern können, ist möglicherweise ein komplexerer Ansatz erforderlich.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON mit dynamischen Schlüsseln in eine C#-Liste von Objekten?. 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