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

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

Patricia Arquette
Patricia Arquette原創
2025-01-19 19:23:08553瀏覽

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

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