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

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

Patricia Arquette
發布: 2025-01-17 10:27:09
原創
561 人瀏覽過

How Can I Deserialize JSON with Dynamic Keys in C#?

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

在處理 JSON 資料時,遇到動態鍵可能會對反序列化帶來挑戰。請考慮以下 JSON 字串:

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

在這個字串中,「daily」鍵是靜態的,但底層鍵是動態的,在反序列化時無法預測。為了解決這個問題,我們可以利用動態物件的強大功能。

使用 JavaScriptSerializer 類,我們可以建立一個動態對象,如下所示:

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

此反序列化將建立一個動態物件 deser,它可以存取 JSON 屬性。要存取每日數據,我們可以使用以下語句:

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

justDaily 物件現在表示每日數據,可以存取其動態鍵。要遍歷鍵及其值,我們可以使用以下程式碼:

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

這將輸出動態鍵及其對應值。透過使用動態對象,即使遇到動態鍵,我們也可以有效地反序列化 JSON 資料。

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

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