C#调用WebApi, 返回的json生成实体的方法

在C#中调用Web API并根据JSON响应生成实体结果,涉及以下几个步骤:

1. 定义实体类

比如我们定义一个User

复制代码
1public class User
2{
3    public int Id { get; set; }
4    public string FirstName { get; set; }
5    public string LastName { get; set; }
6    public string Email { get; set; }
7}

2. 发起HTTP请求并解析JSON

接下来,使用HttpClient类来发起HTTP GET请求到Web API,并使用JsonSerializer或第三方库如Newtonsoft.Json来反序列化JSON响应为C#对象。 (基于.NET Core 3.0+ 以上)

复制代码
1using System;
2using System.Net.Http;
3using System.Text.Json;
4using System.Threading.Tasks;
5
6class Program
7{
8    static async Task Main(string[] args)
9    {
10        using var httpClient = new HttpClient();
11        var response = await httpClient.GetAsync("https://api.example.com/users/1");
12        response.EnsureSuccessStatusCode();
13
14        var json = await response.Content.ReadAsStringAsync();
15        var user = JsonSerializer.Deserialize<User>(json);
16
17        Console.WriteLine($"User: {user.FirstName} {user.LastName}");
18    }
19}
使用Newtonsoft.Json

如果你的项目中使用了Newtonsoft.Json,那么可以这样做:

复制代码
1using System;
2using System.Net.Http;
3using Newtonsoft.Json;
4using System.Threading.Tasks;
5
6class Program
7{
8    static async Task Main(string[] args)
9    {
10        using var httpClient = new HttpClient();
11        var response = await httpClient.GetAsync("https://api.example.com/users/1");
12        response.EnsureSuccessStatusCode();
13
14        var json = await response.Content.ReadAsStringAsync();
15        var user = JsonConvert.DeserializeObject<User>(json);
16
17        Console.WriteLine($"User: {user.FirstName} {user.LastName}");
18    }
19}
相关推荐
BIGFISH20199 分钟前
上下相机引导贴合的标定(绝对坐标方式)
c#
秦禹辰2 小时前
本地Docker部署开源Web相册图库Piwigo与在线远程访问实战方案
开发语言·后端·golang
the beard2 小时前
深入理解Java多线程:状态、安全、同步与通信
java·开发语言
lucky_lyovo3 小时前
大模型部署
开发语言·人工智能·云计算·lua
Warren984 小时前
如何在 Spring Boot 中安全读取账号密码等
java·开发语言·spring boot·后端·安全·面试·测试用例
燃尽了,可无4 小时前
C#基础编程核心知识点总结
开发语言·c#
llrraa20105 小时前
python whisper生成字幕
开发语言·python·whisper
努力努力再努力wz5 小时前
【c++进阶系列】:万字详解多态
java·linux·运维·开发语言·c++
秦亿凡5 小时前
多线程下为什么用ConcurrentHashMap而不是HashMap
java·开发语言
阿波罗尼亚6 小时前
ExcelUtils实现 设置内容 插入行 复制行列格式
java·开发语言