net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序列化

调用 API 直接获取到对象
现在有一个接口返回如下图中的数据:

如果是在 8 以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下

复制代码
const string RequestUri = "http://localhost:5145/user";
using var client = new HttpClient();
var stream =await client.GetStreamAsync(RequestUri);
//反序列化
var users = JsonSerializer.DeserializeAsyncEnumerable<UserInfo>(stream);
await foreach(UserInfo user in users)
{
    Console.WriteLine($"姓名:{user.userName}");
}
Console.ReadKey();
public record UserInfo(string userName);
复制代码

在版本 8  中可以直接调用 GetFromJsonAsAsyncEnumerable 方法直接得到对象,无需进行反序列化:

复制代码
const string RequestUri = "http://localhost:5145/user";
using var client = new HttpClient();
IAsyncEnumerable<UserInfo> users = client.GetFromJsonAsAsyncEnumerable<UserInfo>(RequestUri);
await foreach (UserInfo user in users)
{
    Console.WriteLine($"姓名: {user.userName}");
}
Console.ReadKey();
public record UserInfo(string userName);
复制代码

上面两种代码的结果一样,如下图:

 

posted @   ziff123  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示