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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-07 12:39:42728Durchsuche

How to Deserialize JSON with Dynamic Child Object Keys in C#?

Untergeordnete Objekte mit dynamischen Schlüsseln deserialisieren

In bestimmten Szenarien können JSON-Daten mit dynamischen Schlüsseln für untergeordnete Objekte auftreten. Um diese Daten effektiv zu deserialisieren, sollten Sie Wörterbücher anstelle herkömmlicher Klassen verwenden.

Wörterbücher zur Deserialisierung verwenden

Anstatt für jedes untergeordnete Objekt eine herkömmliche Klasse zu erstellen, können Sie diese verwenden a Dictionary um die Daten darzustellen. Jeder Schlüssel im Wörterbuch stellt einen dynamischen Schlüssel dar, und jeder Wert ist ein Objekt vom Typ T, das die Datenstruktur des untergeordneten Objekts darstellen sollte.

Definieren der Klassen

Definieren Sie für dieses Beispiel die Klassen wie folgt:

class RootObject
{
    public Dictionary<string, User> users { get; set; }
}

class User
{
    public string name { get; set; }
    public string state { get; set; }
    public string id { get; set; }
}

Deserialisieren des JSON Daten

Um die JSON-Daten in Ihre RootObject-Klasse zu deserialisieren, verwenden Sie den folgenden Code:

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);

Zugriff auf untergeordnete Objekte

Einmal Deserialisiert können Sie direkt über das Wörterbuch auf die untergeordneten Objekte zugreifen Schlüssel:

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    Console.WriteLine($"key: {key}");
    Console.WriteLine($"name: {user.name}");
    Console.WriteLine($"state: {user.state}");
    Console.WriteLine($"id: {user.id}");
    Console.WriteLine();
}

Beispiel

Berücksichtigen Sie die folgenden JSON-Daten:

{
    "users" : {
        "100034" : {
            "name"  : "tom",
            "state" : "WA",
            "id"    : "cedf-c56f-18a4-4b1"
        },
        "10045" : {
            "name"  : "steve",
            "state" : "NY",
            "id"    : "ebb2-92bf-3062-7774"
        },
        "12345" : {
            "name"  : "mike",
            "state" : "MA",
            "id"    : "fb60-b34f-6dc8-aaf7"
        }
    }
}

Mit dem bereitgestellten Code können Sie die Daten deserialisieren und Greifen Sie auf jedes untergeordnete Objekt zu, was zur folgenden Ausgabe führt:

key: 10045
name: steve
state: NY
id: ebb2-92bf-3062-7774

key: 12345
name: mike
state: MA
id: fb60-b34f-6dc8-aaf7

key: 100034
name: tom
state: WA
id: cedf-c56f-18a4-4b1

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