ネストされた 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 サイトの他の関連記事を参照してください。