處理巢狀JSON物件的反序列化
程式碼中,您在反序列化包含巢狀物件的JSON資料時遇到問題。本指南將解決此問題,並提供從提供的JSON中獲取職位代碼清單的解決方案。
類別結構不一致
最初,您嘗試將整個JSON回應反序列化為單一JobCode
類,忽略了「jobcodes」鍵下存在多個職位代碼。為了解決這個問題,我們需要建立與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>
這將使用反序列化的JSON資料填充obj
變量,允許您透過obj.Results.JobCodes
存取職位代碼清單。
以上是如何反序列化巢狀 JSON 物件以提取職位代碼清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!