我如何使用IEnumerable从http调用的json输入中创建变量? C#.NET

问题描述 投票:0回答:1

我正在尝试使用应用程序来调用api,并返回用户唯一的数据。我为导入的项目制作了一个单独的类:

public class ItemList
{
     public class Task : IEnumerable<Task>
     {
          public string variable1 { get; set; }
          ....
     }

     public IEnumerator<Task> GetEnumerator()
     { 
          return taskList.GetEnumerator();
     }

     IEnumerator IEnumerable.GetEnumerator()
     {
          return taskList.GetEnumerator();
     }
}

在一个单独的类中,我进行了一个http调用,该返回的json被归类为任务。

WebRequest requestObjGet = WebRequest.Create(url);
//headers, etc
responseObjGet = (HttpWebResponse)requestObjGet.GetResponse();

using (Stream stream = responseObjGet.GetResponseStream())
{
    StreamReader sr = new StreamReader(stream);
    strResultTest=sr.ReadToEnd();

    ItemList userActiveItemData = JsonConvert.DeserializeObject<ItemList>(strResultTest);

    foreach(Task item in userActiveITemData)
    { 
       // DO A THING
    }
}

[这里,我收到一个错误,因为ItemList不包含ItemList的公共实例,所以foreach无法对GetEnumerator类型的变量进行操作。

有人可以帮我运行此循环吗?

谢谢!

c# json httprequest
1个回答
0
投票

不需要类ItemList。您正在尝试实现IEnumerable接口,可以用已经实现List<Task>的简单Task[]IEnumerable代替。

您可以将JSON反序列化为Task的数组。

Task[] userActiveITemData = JsonConvert.DeserializeObject<Task[]>(strResultTest);

foreach(Task item in userActiveITemData)
{ 
   // DO A THING
}
热门问题
推荐问题
最新问题