Verarbeitung der Deserialisierung verschachtelter JSON-Objekte
In Ihrem Code haben Sie Probleme beim Deserialisieren von JSON-Daten, die verschachtelte Objekte enthalten. Dieser Leitfaden befasst sich mit diesem Problem und bietet eine Lösung zum Abrufen einer Liste von Jobcodes aus dem bereitgestellten JSON.
Inkonsistente Klassenstruktur
Zunächst versuchen Sie, die gesamte JSON-Antwort in eine einzige JobCode
-Klasse zu deserialisieren, wobei Sie ignorieren, dass sich unter dem Schlüssel „jobcodes“ mehrere Jobcodes befinden. Um dieses Problem zu lösen, müssen wir Klassen erstellen, die der JSON-Struktur entsprechen.
Verwenden Sie ein Wörterbuch, um variable Schlüssel zu verarbeiten
Die Schlüssel für das Attribut „jobcodes“ in JSON sind Zeichenfolgenwerte („1“ und „2“ in Ihrem Beispiel). Um dieser Variabilität Rechnung zu tragen, verwenden wir Dictionary<string, JobCode>
statt einfach List<JobCode>
. Dieses Wörterbuch ermöglicht es uns, Jobcodes mithilfe ihrer jeweiligen Schlüssel abzurufen.
Aktualisierte Klassenstruktur
Das Folgende ist die geänderte Klassenstruktur, die an JSON ausgerichtet ist:
<code class="language-csharp">public class RootObject { [JsonProperty("results")] public Results Results { get; set; } } public class Results { [JsonProperty("jobcodes")] public Dictionary<string, JobCode> JobCodes { get; set; } } public 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>
Aktualisierte Deserialisierung
Mit diesen Klassen können Sie JSON mit dem folgenden Code deserialisieren:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
Dadurch wird die Variable obj
mit den deserialisierten JSON-Daten gefüllt, sodass Sie über obj.Results.JobCodes
auf die Liste der Jobcodes zugreifen können.
Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte JSON-Objekte deserialisieren, um eine Liste von Jobcodes zu extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!