首页 > 后端开发 > C++ > 如何使用动态键将 JSON 反序列化为 C# 对象列表?

如何使用动态键将 JSON 反序列化为 C# 对象列表?

Patricia Arquette
发布: 2025-01-19 19:23:08
原创
512 人浏览过

How to Deserialize JSON with Dynamic Keys into a C# List of Objects?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板