ホームページ >バックエンド開発 >C++ >ネストされた JSON オブジェクトを逆シリアル化してジョブ コードのリストを抽出するにはどうすればよいですか?

ネストされた JSON オブジェクトを逆シリアル化してジョブ コードのリストを抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-19 22:11:17517ブラウズ

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

ネストされた JSON オブジェクトの逆シリアル化の処理

コード内で、ネストされたオブジェクトを含む JSON データの逆シリアル化で問題が発生しています。このガイドでは、この問題に対処し、提供された JSON からジョブ コードのリストを取得するための解決策を提供します。

一貫性のないクラス構造

最初に、「jobcodes」キーの下に複数のジョブ コードがあることを無視して、JSON 応答全体を単一の JobCode クラスに逆シリアル化しようとします。この問題を解決するには、JSON 構造に一致するクラスを作成する必要があります。

辞書を使用して変数キーを処理します

JSON の「jobcodes」属性のキーは文字列値です (この例では「1」と「2」)。この変動に対応するために、単に Dictionary<string, JobCode> ではなく List<JobCode> を使用します。この辞書を使用すると、それぞれのキーを使用してジョブ コードを取得できます。

クラス構造を更新しました

以下は、JSON に合わせて変更されたクラス構造です。

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

デシリアライズを更新しました

これらのクラスを使用すると、次のコードを使用して JSON を逆シリアル化できます:

<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>

これにより、obj 変数に逆シリアル化された JSON データが設定され、obj.Results.JobCodes 経由でジョブ コードのリストにアクセスできるようになります。

以上がネストされた JSON オブジェクトを逆シリアル化してジョブ コードのリストを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。