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

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

Linda Hamilton
发布: 2025-01-19 19:27:11
原创
125 人浏览过

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

C#中处理动态键的JSON反序列化

在接收具有动态键的JSON响应时,一个常见的任务是将它们反序列化为C#中的对象列表。让我们考虑一个JSON响应包含以下内容的场景:

<code class="language-json">{
"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反序列化为对象列表,您可以使用以下步骤:

  1. 使用Json.NET将JSON反序列化为Dictionary<string, Dataset>
  2. 遍历字典以填充Dataset对象的列表。

以下是一个示例代码:

<code class="language-csharp">using Newtonsoft.Json;
using System.Collections.Generic;

// ...

var jsonObject = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);
var datasetList = new List<Dataset>();

foreach (var item in jsonObject)
{
    datasetList.Add(item.Value);
}</code>
登录后复制

此代码将创建一个Dataset对象列表,其中包含JSON响应中动态键的值。生成的列表将是:

<code>datasetList[0].name = "nasdaq_imbalance"
datasetList[0].group = "Market Data"

datasetList[1].name = "DXOpen IM"
datasetList[1].group = "Daily"

datasetList[2].name = "Float Shares"
datasetList[2].group = "Daily"</code>
登录后复制

请注意,此方法假设Dataset类已定义,并包含namegroup属性。 你需要根据你的实际Dataset类结构调整代码。

以上是如何使用动态键将 JSON 反序列化为 C# 中的对象列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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