首頁 > 後端開發 > C++ > 如何在 C# 中使用字典透過動態鍵反序列化 JSON?

如何在 C# 中使用字典透過動態鍵反序列化 JSON?

DDD
發布: 2025-01-17 10:17:09
原創
860 人瀏覽過

How to Deserialize JSON with Dynamic Keys Using a Dictionary in C#?

使用字典靈活處理具有動態鍵的 JSON 反序列化

在 JSON 世界中,當反序列化為物件時,遇到具有動態且不可預測的根鍵的 JSON 字串可能會帶來挑戰。以下是如何使用字典方法解決此問題。

例如,考慮以下 JSON 字串:

<code>{
    "daily": {
        "1337990400000": 443447,
        "1338076800000": 444693,
        "1338163200000": 452282,
        "1338249600000": 462189,
        "1338336000000": 466626
    }
}</code>
登入後複製

由於鍵是動態的,因此使用具有類別結構的 JavascriptSerializer 在此處就顯得不夠用了。更靈活的解決方案是將 JSON 字串反序列化為字典,這使我們能夠輕鬆存取動態鍵及其對應的值。

<code class="language-csharp">var deser = new JavaScriptSerializer().Deserialize<Dictionary<string, Dictionary<string, int>>>(val);</code>
登入後複製

此行建立了一個字典 deser,其中鍵是字串,值是具有字串鍵和整數值的字典。它有效地將 JSON 字串中的動態鍵映射到中間字典。

要存取特定數據,我們可以使用以下程式碼:

<code class="language-csharp">var justDaily = deser["daily"];</code>
登入後複製

justDaily 變數現在包含一個字典,該字典表示來自 JSON 字串的「daily」物件。我們可以遍歷其鍵和值以提取動態鍵和對應的值。

<code class="language-csharp">foreach (string key in justDaily.Keys)
    Console.WriteLine(key + ": " + justDaily[key]);</code>
登入後複製

這種方法允許我們透過將具有動態根鍵的 JSON 字串轉換為字典結構來處理它們,並在存取資料時提供靈活性。即使鍵不可預測,也可以充分利用字典的功能輕鬆反序列化 JSON。

以上是如何在 C# 中使用字典透過動態鍵反序列化 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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