首頁 >後端開發 >C++ >如何反序列化巢狀 JSON 物件以提取職位代碼清單?

如何反序列化巢狀 JSON 物件以提取職位代碼清單?

DDD
DDD原創
2025-01-19 22:11:17517瀏覽

How Can I Deserialize Nested JSON Objects to Extract a List of Job Codes?

處理巢狀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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn