如何将HttpClient's PostAsJsonAsync()的输出转换为用户定义的对象列表

本文关键字:转换 输出 用户 列表 对象 定义 HttpClient PostAsJsonAsync | 更新日期: 2023-09-27 18:05:07

我正在制作System.Net.Http.HttpClient类调用终点。该端点需要特定的输入,并返回类型为Employee ( List<Employee>)的用户定义对象的List。

这是我正在使用的代码。

using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:7792/");
                client.DefaultRequestHeaders.Accept.Clear();
                FilterModel payload = new FilterModel();
                payload.employeeId= 97050001;
                payload.Level= "Manager";

                // New code:
                HttpResponseMessage response =  client.PostAsJsonAsync("api/employee", payload).Result;
                if (response.IsSuccessStatusCode)
                {
                    var employee=  response.Content.ReadAsStringAsync();
//HOW DO I CONVERT THE OUTPUT INTO LIST<EMPLOYEE>?
                    Console.Write("---DONE---");
                }
                Console.ReadKey();
            }

我知道这不是调用结束点的理想方式&我必须使用async await。我只需要数据,调用可以是同步或异步&我想将结果强制转换为List。

目前我得到一个字符串,我需要反序列化。请帮忙

如何将HttpClient's PostAsJsonAsync()的输出转换为用户定义的对象列表

可以这样使用JsonConvert:

var jsonString=  response.Content.ReadAsStringAsync();
var employees = JsonConvert.DeserializeObject<List<Employee>>(jsonString);

希望这有帮助!

更新2020:使用如下内容:

return await response.Content.ReadFromJsonAsync<List<Employee>>();