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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 12:51:45270Durchsuche

How to Deserialize JSON with Dynamic Keys in C#?

Dynamische Schlüssel bei der JSON-Deserialisierung

Beim Umgang mit JSON-Daten, die dynamische Schlüssel enthalten, kann der Zugriff auf Objekteigenschaften eine Herausforderung darstellen. Betrachten Sie die folgenden 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"
        }
    }
}

In diesem JSON-Objekt sind die Schlüssel numerische Zeichenfolgen, was es schwierig macht, Klassen mit statischen Eigenschaftsnamen zu definieren. Um dieses Problem zu lösen, können wir die Funktion Dictionary nutzen. Geben Sie C# ein, wobei T die Klasse für unsere Artikeldaten darstellt.

Klassenstruktur und Deserialisierung

Wir definieren die folgenden Klassen:

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; }
}

Dann können wir die JSON-Daten wie folgt deserialisieren:

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

Dadurch wird eine RootObject-Instanz mit a erstellt Wörterbuch Benannte Benutzer.

Auf Objekteigenschaften zugreifen

Wir können jetzt über die Wörterbuchtasten auf die Objekteigenschaften zugreifen. Der folgende Code durchläuft die Benutzer:

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    // Access properties using user.name, user.state, etc.
}

Ausgabe:

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

Dieser Ansatz ermöglicht es uns, JSON-Daten mit dynamischen Schlüsseln zu deserialisieren und nahtlos auf Objekteigenschaften zuzugreifen.

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!

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