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

How to convert output of HttpClient's PostAsJsonAsync() into user defined list of object

我正在制作System.Net.Http.HttpClientclass来调用一个终点。此端点需要特定输入和 returns 类型为 Employee ( List<Employee>).

的用户定义对象列表

这是我正在使用的代码。

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();
            }

我知道这不是调用端点的理想方式,我必须使用 asyc await。我只需要数据,调用可以是同步的也可以是异步的,我想将结果类型转换为列表。

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

您可以按如下方式使用 JsonConvert:

var jsonString=  response.Content.ReadAsStringAsync();

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

希望对您有所帮助!

2020 年更新: 使用这样的东西:

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