Verwaltung der JSON-Deserialisierung dynamischer Schlüssel in C#
Beim Empfang einer JSON-Antwort mit dynamischen Schlüsseln kann die Deserialisierung in ein C#-Objekt mit einem vordefinierten Datenmodell schwierig sein. In diesem Artikel wird ein bestimmtes Szenario beschrieben, in dem die JSON-Antwort Objekte mit dynamischen Schlüsseln enthält.
Die folgende JSON-Antwort veranschaulicht das Problem:
<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 Dataset-Objekten mit Namens-, Gruppen- und Beschreibungseigenschaften zu deserialisieren.
Lösung: Verwenden Sie Json.NET und Wörterbuch
Json.NET bietet eine Lösung für die Deserialisierung von JSON mit dynamischen Schlüsseln für C#-Objekte. Mithilfe von JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json)
können Sie JSON in ein Wörterbuch deserialisieren, in dem die Schlüssel dynamische Schlüssel aus der JSON-Antwort und die Werte Dataset-Objekte sind.
Der folgende Code demonstriert diese Lösung:
<code class="language-csharp">using Newtonsoft.Json; ... // 将JSON反序列化到一个包含动态键和Dataset对象的字典中 var json = @"{ ""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 }, }"; var datasetDictionary = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json); // 使用动态键作为字典键访问Dataset对象 foreach (var dataset in datasetDictionary.Values) { Console.WriteLine($"Dataset: {dataset.name}, Group: {dataset.group}, Description: {dataset.description}"); }</code>
Mit dieser Lösung können Sie JSON mit dynamischen Schlüsseln für ein C#-Objekt deserialisieren und dabei die ursprüngliche Schlüssel-Wert-Struktur beibehalten.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON mit dynamischen Schlüsseln in ein C#-Objekt mithilfe von Json.NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!