我正在使用一个Web API,控制器中包含以下数据。
public IEnumerable<string> Get()
{
return new string[] { "Item1", "Item2s", "Item3", "Item4", "Item5" };
}
我想从应用程序中的Web API获取此数据。我使用此代码从另一个控制器获取数据:
public IEnumerable<Items> GetItems()
{
return repository.GetItems();
}
上面显示了控制器代码,它获取了在web API中指定的项目列表。我如何修改下面的代码以从字符串[]获取数据?
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("http://localhost:1234/api/items");
var items = new List<Items>();
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
// Parse 1 Product from the content
var ItemsSet= JsonConvert.DeserializeObject<dynamic>(content);
// Data from Api
var ItemData = new Items
(
(string)ItemsSet[0],
(string)ItemsSet[1],
(string)ItemsSet[2],
(string)ItemsSet[3],
(string)ItemsSet[4]
);
items.Add(ItemData);
}
2条答案
按热度按时间cigdeys31#
这个怎么样
qni6mghb2#
您需要更新JsonConvert.DeserializeObject方法调用,以将响应分析为string []而不是dynamic。为此,可以将泛型类型参数从dynamic更改为string []。
下面是更新后的代码:
这将把来自Web API的响应解析为string [],并为数组中的每个字符串创建一个新的Items对象。您还需要更新Items类的构造函数,以接受单个字符串作为参数。