我如何使用IEnumerable从http调用的json输入中创建变量? C#.NET
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何使用IEnumerable从http调用的json输入中创建变量? C#.NET相关的知识,希望对你有一定的参考价值。
我正在尝试使用应用程序来调用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
类型的变量进行操作。
有人可以帮我运行此循环吗?
谢谢!
答案
不需要类ItemList
。您正在尝试实现IEnumerable
接口,可以用已经实现List<Task>
的简单Task[]
或IEnumerable
代替。
您可以将JSON反序列化为Task
的数组。
Task[] userActiveITemData = JsonConvert.DeserializeObject<Task[]>(strResultTest);
foreach(Task item in userActiveITemData)
{
// DO A THING
}
以上是关于我如何使用IEnumerable从http调用的json输入中创建变量? C#.NET的主要内容,如果未能解决你的问题,请参考以下文章
如何创建调用 IEnumerable<TSource>.Any(...) 的表达式树?
如何使用 LINQ 从 DataTable 中以 IEnumerable<MODEL> 形式获取数据?
在 Powershell 中,如何传递 IEnumerable 参数?