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中文网其他相关文章!