将响应字符串映射到来自 POST 请求的对象

Map response string to an Object from POST request

我正在尝试编写一个函数,该函数发出 Post 请求并将其 return 作为人体数据作为一个人对象。通常会为此使用 GET 操作,但由于某些技术问题,我不得不使用 POST。

   // HttpClient client = new HttpClient();
    public async Task<Person> PersonService()
    {
      var bodyObj = new Dictionary<string, string>();
      bodyObj ["user_id"] = "ac345adf3gj6";
      var serializedData = JsonSerializer.Serialize(bodyObj);
      var stringContet = new StringContent(serializedData, Encoding.UTF8, "application/json");
      var response = await client.PostAsync(url, data);
      var contents = await response.Content.ReadAsStringAsync();
      // map content to person object
      return person; // object mapped from content string
    }

有什么方法可以等待数据,将字符串映射到 Person 对象,然后 return 它作为 Person 对象而不是 Task?

类似的东西

 public Person PersonService() { ... return person; }

为了反序列化来自 JSON 的内容,您可以使用 ReadFromJsonAsync 方法:

public async Task<Person> PersonService()
{
  var bodyObj = new Dictionary<string, string>();
  bodyObj ["user_id"] = "ac345adf3gj6";
  var serializedData = JsonSerializer.Serialize(bodyObj);
  var stringContet = new StringContent(serializedData, Encoding.UTF8, "application/json");
  var response = await client.PostAsync(url, data);
  // Change the following line: 
  var person = await response.Content.ReadFromJsonAsync<Person>();
  return person; // object mapped from content string
}