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>
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>
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>
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>
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!