Heim > Backend-Entwicklung > C++ > Wie kann ich verschachtelte JSON-Objekte deserialisieren, um eine Liste von Jobcodes zu extrahieren?

Wie kann ich verschachtelte JSON-Objekte deserialisieren, um eine Liste von Jobcodes zu extrahieren?

DDD
Freigeben: 2025-01-19 22:11:17
Original
522 Leute haben es durchsucht

How Can I Deserialize Nested JSON Objects to Extract a List of Job Codes?

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage