我序列化了一个多级json对象。这些被称为网络研讨会,每个都包含如下信息。我可以毫无问题地访问第一级。我可以访问第二级(类别>),如果我这样做,如网络研讨会[webinar] .categories.TimeZone等,但我不能循环它。当我尝试foreach(网络研讨会中的类别){}我得到:
CS1579 C#foreach语句不能对类型变量进行操作,因为它不包含' GetEnumerator'的公共定义。
我做错了什么?
感谢您的帮助。
SAMPLE 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>
}
}
答案 0 :(得分:3)
很简单,为什么这不起作用。
如果您想要遍历必须编写的类别
foreach (var category in webinar.Categories)
然后,您会收到错误,因为WebinarCategories
未实现GetEnumerator
,因为它未实现IEnumerable
。如果您想在网络研讨会中存储类别列表,最简单的方法就是更改您的媒体资源。
public List<WebinarCategories> Categories { get; set; }
答案 1 :(得分:0)
更改
public List<WebinarCategories> Categories { get; set; }
要
IEnumerable<WebinarCategories> Categories { get; set; }
或者,如果你真的想
public function index(){
return view('pages.index');
}
public function about(){
return view('pages.about');
}