首页 > 解决方案 > 如何将 JSON 数据存储到 IEnumerable 并循环遍历它?

问题描述

我想调用多个 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);
}

标签: c#asp.net-mvcapiasp.net-coreienumerable

解决方案


这不起作用,因为 anIEnumerable没有索引器:

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));
}

推荐阅读