將巢狀JSON反序列化到C#類別
將JSON響應反序列化為C#類,關鍵在於使類別結構與整個JSON資料相符。以下是如何反序列化給定JSON的解決方案:
JSON結構:
<code>{ "results": { "jobcodes": { "1": { ... }, "2": { ... }, ... } } }</code>
問題:
您沒有考慮嵌套「jobcodes」物件中動態鍵(「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中文網其他相關文章!