JSON反序列化多级C#

JSON反序列化多级C#,c#,json,C#,Json,我正在序列化一个多级json对象。这些被称为网络研讨会,每个研讨会包含如下信息。我可以毫无问题地进入第一级。如果我喜欢网络研讨会[webinar].categories.TimeZone等,我可以访问第二级(categories>),但我不能循环访问它。当我尝试foreach(网络研讨会中的类别){}时,我得到: CS1579 C#foreach语句无法对类型的变量进行操作,因为它不包含“GetEnumerator”的公共定义 我做错了什么 谢谢你的帮助 示例JSON { "date": "

我正在序列化一个多级json对象。这些被称为网络研讨会,每个研讨会包含如下信息。我可以毫无问题地进入第一级。如果我喜欢网络研讨会[webinar].categories.TimeZone等,我可以访问第二级(categories>),但我不能循环访问它。当我尝试foreach(网络研讨会中的类别){}时,我得到:

CS1579 C#foreach语句无法对类型的变量进行操作,因为它不包含“GetEnumerator”的公共定义

我做错了什么

谢谢你的帮助

示例JSON

{
  "date": "2017-11-08T02:33:57Z",
  "title": "Craft, The",
  "desc": "Galeazzi's fx l rad, subs for opn fx type 3A/B/C w malunion",
  "startTime": "4:03 AM",
  "endTime": "5:46 PM",
  "categories": {
    "category": "e-learning",
    "timeZone": "Asia/Jakarta",
    "language": "English"
  }
}
模型

public class Rootobject
{
    public Webinar[] Webinars { get; set; }
    public ELearning[] Elearning { get; set; }
}

public class Webinar
{
    public DateTime Date { get; set; }
    public string Title { get; set; }
    public string Desc { get; set; }
    public string StartTime { get; set; }
    public string EndTime { get; set; }
    public WebinarCategories Categories { get; set; }
}

public class WebinarCategories
{
    public string Category { get; set; }
    public string TimeZone { get; set; }
    public string Language { get; set; }
}
我想要达到的目标

foreach (var webinar in root.webinars) {
     foreach (var category in webinar) {

            <button href="javascript:void(0)" class="dropbtn">@category</button>
     }
}
foreach(root.webinars中的var网络研讨会){
foreach(网络研讨会中的var类别){
@类别
}
}
更改
公共网络研讨会类别{get;set;}

公共列表类别{get;set;}

或者,如果你真的想
IEnumerable Categories{get;set;}

更改
公共网络研讨会类别{get;set;}

公共列表类别{get;set;}

或者,如果你真的想
IEnumerable Categories{get;set;}

很简单,为什么这不起作用

如果你想循环浏览这些类别,你必须写

foreach (var category in webinar.Categories)
然后,您是否会因为
webinarcegories
未实现
GetEnumerator
而收到错误,因为它未实现
IEnumerable
。如果您想在网络研讨会中存储类别列表,最简单的方法是像这样更改属性

public List<WebinarCategories> Categories { get; set; }
公共列表类别{get;set;}

很简单,为什么这不起作用

如果你想循环浏览这些类别,你必须写

foreach (var category in webinar.Categories)
然后,您是否会因为
webinarcegories
未实现
GetEnumerator
而收到错误,因为它未实现
IEnumerable
。如果您想在网络研讨会中存储类别列表,最简单的方法是像这样更改属性

public List<WebinarCategories> Categories { get; set; }
公共列表类别{get;set;}

WebinarCategories类不是数组或列表。它不起作用,因为您的类别不是IEnumerablets类型WebinarCategories类不是数组或列表。它不起作用,因为您的类别不是IENumerableThanks类型!那正是我的问题。谢谢!那正是我的问题。