Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich verschachteltes JSON mit dynamischen Schlüsseln in C#-Klassen?
Verschachteltes JSON in C#-Klasse deserialisieren
Deserialisieren Sie die JSON-Antwort in eine C#-Klasse. Der Schlüssel besteht darin, die Klassenstruktur mit den gesamten JSON-Daten abzugleichen. Hier ist die Lösung zum Deserialisieren des angegebenen JSON:
JSON-Struktur:
<code>{ "results": { "jobcodes": { "1": { ... }, "2": { ... }, ... } } }</code>
Frage:
Sie berücksichtigen nicht die dynamischen Schlüssel („1“ und „2“) im verschachtelten „Jobcodes“-Objekt.
Lösung:
Um Objekte mit dynamischen Schlüsseln zu verarbeiten, verwenden Sie Dictionary<string, JobCode>
:
<code class="language-csharp">class Results { [JsonProperty("jobcodes")] public Dictionary<string, JobCode> JobCodes { get; set; } }</code>
Vollständige Klassenstruktur:
<code class="language-csharp">class RootObject { [JsonProperty("results")] public Results Results { get; set; } } class JobCode { [JsonProperty("_status_code")] public string StatusCode { get; set; } [JsonProperty("_status_message")] public string StatusMessage { get; set; } [JsonProperty("id")] public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } }</code>
Deserialisierung:
JSON deserialisieren in RootObject
Klasse:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonResponse);</code>
Ergebnis:
Sie können obj.Results.JobCodes.Values
erhalten, indem Sie List<JobCode>
besuchen. Jedes JobCode
verfügt über einen entsprechenden Attributwert von JSON.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich verschachteltes JSON mit dynamischen Schlüsseln in C#-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!