複雑なネストされた JSON データを C# クラスに逆シリアル化します
場合によっては、API は複数レベルのネストされたオブジェクトを含む JSON データを返すことがあります。このようなデータを C# クラスに逆シリアル化することは、特にオブジェクト構造が JSON 応答と正確に一致しない場合には困難になる可能性があります。
問題の詳細な説明
例に示すように、提供された JSON 応答にはルートレベルの「results」オブジェクトが含まれており、このオブジェクトには、個々のジョブ コードを表す複数のキーと値のペアを含む「jobcodes」オブジェクトが含まれています。ただし、元の C# オブジェクトの設計では JobCode インスタンスが 1 つだけ考慮されていたため、逆シリアル化されたときに null 値が返されることになりました。
解決策
複雑な JSON データを正常に逆シリアル化するには、JSON 応答とまったく同じクラス構造を作成してください。この場合:
Dictionary<string, JobCode>
の「jobcodes」プロパティが含まれている必要があります。これは、JSON 応答内の「ジョブコード」オブジェクトの動的な性質を反映しています。 逆シリアル化コード
適切なクラス構造を導入すると、逆シリアル化が簡単になります。
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
このコード行は、「RootObject」クラスへの JSON 応答を逆シリアル化し、その「Results」プロパティと関連するジョブ コードの詳細にアクセスできるようにします。
ジョブコードリストに戻る
最終的にジョブ コードのリストを取得するには、単純なループを使用して「JobCodes」ディクショナリからジョブ コードを抽出します。
<code class="language-csharp">List<JobCode> jobCodes = new List<JobCode>(); foreach (KeyValuePair<string, JobCode> jobCode in obj.Results.JobCodes) { jobCodes.Add(jobCode.Value); }</code>
これらの手順に従うことで、ネストされたオブジェクトを含む複雑な JSON データを C# クラスに効率的に逆シリアル化でき、API 応答へのアクセスと処理が容易になります。
以上が複雑なネストされた JSON データを C# クラスに逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。