Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich JSON mit dynamischen Schlüsseln in ein C#-Objekt mithilfe von Json.NET?

Wie deserialisiere ich JSON mit dynamischen Schlüsseln in ein C#-Objekt mithilfe von Json.NET?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-19 19:31:091032Durchsuche

How to Deserialize JSON with Dynamic Keys into a C# Object Using Json.NET?

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!

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