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
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
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!