好的,所以我的json返回字符串看起来像这样:
{
"categories": [
{
"id": "1",
"category": "cat-1"
},
{
"id": "2",
"category": "cat-2"
},
{
"id": "3",
"category": "cat-3"
}
]
}
此返回的类别列表将在我的引导导航菜单中用作下拉列表,因此,我希望使用最少的呼叫次数,因为它可能不会经常更改以至于在每个页面中都不需要如果不需要,请刷新。
我如何写出我的Model / ViewModel绑定到这个字符串?然后,我想使用类似的方法返回可以迭代的CategoryViewModel列表。
public async Task<IEnumerable<CategoryViewModel>> GetCategoryList () {
HttpResponseMessage response = await httpClient.GetAsync ("/categories");
response.EnsureSuccessStatusCode ();
var result = await response.Content
.ReadAsAsync<IEnumerable<CategoryViewModel>> ();
return result;
}
答案 0 :(得分:3)
您拥有的JSON模型需要一个容器类,例如:
public class CategoryViewModelContainer
{
public IEnumerable<CategoryViewModel> Categories { get; set; }
}
//Assuming your category view model looks like this:
public class CategoryViewModel
{
public int Id { get; set; }
public string Category { get; set; }
}
您可以这样使用它:
var result = await response.Content.ReadAsAsync<CategoryViewModelContainer>();
现在您可以遍历以下类别:
foreach(var categoryModel in result.Categories)
{
var categoryName = categoryModel.Category;
}