首頁 > 後端開發 > C++ > 如何使用動態鍵將 JSON 反序列化為 C# 物件清單?

如何使用動態鍵將 JSON 反序列化為 C# 物件清單?

Patricia Arquette
發布: 2025-01-19 19:23:08
原創
551 人瀏覽過

How to Deserialize JSON with Dynamic Keys into a C# List of Objects?

C# 中的動態鍵 JSON 反序列化

在某些情況下,Web 請求可能會傳回具有動態鍵的 JSON 回應,這給反序列化到 C# 物件帶來了挑戰。例如,考慮以下 JSON 回應:

<code>{
"nasdaq_imbalance": 
{
    "name": "nasdaq_imbalance", 
    "group": "Market Data", 
    "description": null
},
"DXOpen IM": 
{
    "name": "DXOpen IM", 
    "group": "Daily",
    "description": null
}, 
"Float Shares": 
{
    "name": "Float Shares", 
    "group": "Daily", 
    "description": null
}, 
}</code>
登入後複製

目標是將此 JSON 反序列化到以下類型的 C# 物件清單中:

<code>public class Dataset    {
    public string name { get; set; } 
    public string group { get; set; } 
    public string description { get; set; } 
}</code>
登入後複製

為此,我們可以利用 Json.NET 的強大功能。以下程式碼片段說明如何實現:

<code class="language-csharp">Dictionary<string, Dataset> datasets = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);</code>
登入後複製

這行程式碼將 JSON 反序列化到一個字典中,其中鍵是 JSON 回應中的動態鍵(例如,「nasdaq_imbalance」、「DXOpen IM」等),值是 Dataset 類別的實例。

從此字典中,您可以輕鬆地透過其動態鍵存取資料集,並根據需要使用它們。例如,要存取鍵為「nasdaq_imbalance」的資料集:

<code class="language-csharp">Dataset nasdaqImbalanceDataset = datasets["nasdaq_imbalance"];</code>
登入後複製

請記住,此解決方案僅適用於預先知道動態鍵的情況。如果鍵可以動態變化,則可能需要更複雜的方法。

以上是如何使用動態鍵將 JSON 反序列化為 C# 物件清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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