使用字典靈活處理具有動態鍵的 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中文網其他相關文章!