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

Wie deserialisiere ich JSON mit dynamischen Schlüsseln in C#?

Mary-Kate Olsen
Freigeben: 2025-01-19 19:37:12
Original
292 Leute haben es durchsucht

How to Deserialize JSON with Dynamic Keys into C#?

C#-Deserialisierungsmethode zur Verarbeitung von JSON-Daten mit dynamischen Schlüsseln

Beim Umgang mit einer JSON-Antwort mit dynamischen Schlüsseln (wie dem in der Frage bereitgestellten JSON) kann die Deserialisierung in ein stark typisiertes C#-Objekt schwierig werden. Da die Schlüssel unvorhersehbar sind, ist es nicht möglich, die Antwortstruktur direkt auf die Klassendefinition abzubilden.

Um dieses Problem zu lösen, können Sie die dynamische Typisierungsfunktion in C# verwenden. JSON kann mithilfe der JsonConvert.DeserializeObject-Methode der Newtonsoft JSON-Bibliothek in dynamische Objekte deserialisiert werden. Dieses dynamische Objekt ermöglicht den Zugriff auf Eigenschaften mithilfe von Zeichenfolgenschlüsseln, die dynamisch aus der JSON-Antwort abgerufen werden.

Der folgende Codeausschnitt zeigt beispielsweise, wie die bereitgestellte JSON-Antwort in ein dynamisches Objekt deserialisiert wird:

<code class="language-csharp">dynamic dynamicObject = JsonConvert.DeserializeObject<dynamic>(json);</code>
Nach dem Login kopieren

Sie können jetzt auf Eigenschaften von dynamicObject zugreifen, indem Sie den aus der JSON-Antwort abgerufenen Eigenschaftsnamen verwenden, zum Beispiel:

<code class="language-csharp">var nasdaqImbalanceName = dynamicObject["nasdaq_imbalance"].name;
var dxOpenIMGroup = dynamicObject["DXOpen IM"].group;</code>
Nach dem Login kopieren

Wenn jedoch eine stark typisierte Darstellung erforderlich ist, ist ein fortgeschrittenerer Ansatz erforderlich. Sie können eine JSON-Antwort in eine Liste dieser benutzerdefinierten Objekte deserialisieren, indem Sie eine benutzerdefinierte Klasse erstellen, die die erforderlichen Eigenschaftsnamen zur Darstellung der JSON-Struktur enthält.

Für die bereitgestellte JSON-Antwort ist die folgende Klassendefinition geeignet:

<code class="language-csharp">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 Sie die Klasse JsonConvert verwenden, um das JSON in ein Wörterbuch mit Zeichenfolgenschlüsseln für Dataset-Objekte zu deserialisieren und es dann in eine Liste von Objekten umzuwandeln:

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

Mit diesem Ansatz können Sie dynamische JSON-Strukturen typsicher darstellen und so einen einfachen Zugriff auf Daten in C#-Anwendungen ermöglichen.

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