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
Freigeben: 2025-01-07 12:51:45
Original
235 Leute haben es durchsucht

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"
        }
    }
}
Nach dem Login kopieren

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; }
}
Nach dem Login kopieren

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

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
Nach dem Login kopieren

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.
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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