首頁 > 後端開發 > C++ > 如何將帶有動態鍵的巢狀 JSON 反序列化為 C# 類別?

如何將帶有動態鍵的巢狀 JSON 反序列化為 C# 類別?

Barbara Streisand
發布: 2025-01-19 21:51:11
原創
388 人瀏覽過

How to Deserialize Nested JSON with Dynamic Keys into C# Classes?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板