使用HttpClient和Newtonsoft.Json在Blazor服务项目中调用API端点,并将响应绑定到DataTable。
具体
首先我们需要在项目中引用HttpClient和Newtonsoft.Json库。之后在需要绑定DataTable的组件中注入IHttpClientFactory以创建相应的 HttpClient 实例并调用API端点。使用 Newtonsoft.Json 将API响应反序列化为相应的对象类型。最后我们用C#的LINQ操作对数据进行转换,建立DataTable。
以下是示例代码:
@inject HttpClient httpClient
@using Newtonsoft.Json
@using System.Data
ID
Name
Age
@if (dataTable != null)
{
@foreach (DataRow row in dataTable.Rows)
{
@row["ID"]
@row["Name"]
@row["Age"]
}
}
@code {
DataTable dataTable;
protected override async Task OnInitializedAsync()
{
var response = await httpClient.GetAsync("https://api.url/endpoint");
var json = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject>(json);
dataTable = data.AsEnumerable().Select(row => new
{
ID = row.ID,
Name = row.Name,
Age = row.Age
}).CopyToDataTable();
}
private class MyData
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
}
下一篇:Blazor服务注入未正常工作