如何将 JSON 数据存储到 IEnumerable 并循环遍历它?
How to store JSON data to IEnumerable and loop through it?
我想调用多个 API(使用不同的参数),然后将它们存储到某种容器中。然后我想抓住这个容器,发送到我的视图 (Razor),遍历它并将它附加到我的 DOM(或显示它)。
以下无效。
public IActionResult Index()
{
string[] day = {"Mon", "Tue", "Wed", "Thu", "Fri"};
IEnumerable<API> results = new IEnumerable<API>();
for (var i = 0; i < day.Length; i++)
{
var client = new RestClient("https://api.example.com/values/d=" + day[i]);
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("accept", "application/json; charset=utf-8");
IRestResponse response = client.Execute(request);
var responseContent = response.Content;
results[i] = new JavaScriptSerializer().Deserialize<API>(responseContent);
}
return View(results);
}
这行不通,因为 IEnumerable
没有索引器:
results[i] =
或者您可以使用列表:
List<API> results = new List<API>();
for (var i = 0; i < day.Length; i++) //can also be foreach
{
///omitted
results.Add(new JavaScriptSerializer().Deserialize<API>(responseContent));
}
您可以 return IEnumerable 类型:
IEnumerable<API> results = new List<API>();
results.Add(new JavaScriptSerializer().Deserialize<API>(responseContent));
results ==> System.Collections.Generic.IEnumerable
{System.Collections.Generic.List}
我想调用多个 API(使用不同的参数),然后将它们存储到某种容器中。然后我想抓住这个容器,发送到我的视图 (Razor),遍历它并将它附加到我的 DOM(或显示它)。
以下无效。
public IActionResult Index()
{
string[] day = {"Mon", "Tue", "Wed", "Thu", "Fri"};
IEnumerable<API> results = new IEnumerable<API>();
for (var i = 0; i < day.Length; i++)
{
var client = new RestClient("https://api.example.com/values/d=" + day[i]);
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("accept", "application/json; charset=utf-8");
IRestResponse response = client.Execute(request);
var responseContent = response.Content;
results[i] = new JavaScriptSerializer().Deserialize<API>(responseContent);
}
return View(results);
}
这行不通,因为 IEnumerable
没有索引器:
results[i] =
或者您可以使用列表:
List<API> results = new List<API>();
for (var i = 0; i < day.Length; i++) //can also be foreach
{
///omitted
results.Add(new JavaScriptSerializer().Deserialize<API>(responseContent));
}
您可以 return IEnumerable 类型:
IEnumerable<API> results = new List<API>();
results.Add(new JavaScriptSerializer().Deserialize<API>(responseContent));
results ==> System.Collections.Generic.IEnumerable {System.Collections.Generic.List}