ホームページ > バックエンド開発 > C++ > 動的キーを使用してネストされた JSON を C# クラスに逆シリアル化する方法

動的キーを使用してネストされた JSON を C# クラスに逆シリアル化する方法

Barbara Streisand
リリース: 2025-01-19 21:51:11
オリジナル
388 人が閲覧しました

How to Deserialize Nested JSON with Dynamic Keys into C# Classes?

ネストされた JSON を C# クラスに逆シリアル化します

JSON 応答を C# クラスに逆シリアル化する。重要なのは、クラス構造を JSON データ全体と一致させることです。指定された JSON を逆シリアル化する方法の解決策は次のとおりです:

JSON 構造:

<code>{
    "results": {
        "jobcodes": {
            "1": { ... },
            "2": { ... },
            ...
        }
    }
}</code>
ログイン後にコピー

質問:

ネストされた「ジョブコード」オブジェクト内の動的キー (「1」と「2」) が考慮されていません。

解決策:

動的キーを持つオブジェクトを処理するには、Dictionary<string, JobCode> を使用します:

<code class="language-csharp">class Results
{
    [JsonProperty("jobcodes")]
    public Dictionary<string, JobCode> JobCodes { get; set; }
}</code>
ログイン後にコピー

完全なクラス構造:

<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>
ログイン後にコピー

逆シリアル化:

JSON を RootObject クラスに逆シリアル化します:

<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonResponse);</code>
ログイン後にコピー

結果:

obj.Results.JobCodes.Valuesにアクセスすると、List<JobCode>を入手できます。各 JobCode には、JSON からの対応する属性値があります。

以上が動的キーを使用してネストされた JSON を C# クラスに逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート