c# - C#如何在不知道长度的情况下读取某些属性
问题描述
我对 nuget api 进行了 GET 以获取有关包的某些数据(在我的情况下为 stylecop)。该调用有效,结果我成功获得了一个 json。但是 json 结构复杂,我需要读出所有项目。
这是我做的api调用,它有效。这应该向您显示 json 我试图从以下位置获取数据: https ://api.nuget.org/v3/registration3/stylecop.analyzers/index.json
红色区域包含我要读取的项目对象。它总共有43个项目。这些项目中的每一个都有一个 commitId 属性。我想从每个项目中读出所有 43 个 commitId 属性以将它们存储在列表中。
dynamic dynJson = JsonConvert.DeserializeObject(x);
foreach (var item in dynJson)
{
Console.WriteLine(item.commitid);
}
这是我尝试过的,但我不知道如何访问第二层项目
解决方案
我看到 JSON 应该很容易创建可以反序列化的 C# 类。您可以使用 jsonutils.com 之类的工具从示例 JSON 字符串生成 C# 模型,并可能对其进行调整以更好地类似于您的 JSON 结构。
然后您可以使用以下命令将其反序列化为 C# 对象:
var yourObject = JsonConvert.DeserializeObject<YourJsonModel>(jsonString);
并通过 C# 对象中的对象数组/列表访问您想要的任何级别。
推荐阅读
- r - R中的文本挖掘 - 如何从文本分析中排除完整的短语/句子
- java - 将 IntelliJ 中的 JavaFX 11 实现从“使用 IDE 中的 jvm 选项构建和运行”更改为“创建运行时映像”
- intel-8080 - 8080中按位运算的进位和辅助进位如何计算
- css - ReactJS 中的问题居中组件
- html - 如何防止 div 阻止下拉菜单?
- r - 使用 tidyjson 从 JSON 结构中获取数组
- php - 从句子中获取与数组 PHP 匹配的单词
- visual-studio-code - 如何将 express-winston 添加到 Parse Server 示例?
- python - Python Pandas 按条件过滤
- node.js - 我怎样才能知道 NodeJS 中哪里发现了错误?