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