无法使用 System.Text.Json.JsonSerializer class 反序列化我的 JSON 响应

Can't de-serialized my JSON response using the System.Text.Json.JsonSerializer class

我正在使用 System.Text.Json 反序列化我的 JSON,我知道 Json.Net 但选择不使用它。

我正在使用 return 字符串的 System.Net.Http.HttpClient.GetStringAsync 方法向 https://jsonplaceholder.typicode.com/ 发出请求。对请求的响应是一个 JSON 数组,其中填充了具有以下键的对象:userIdidtitlebody。我正在使用 Deserialize generic 方法反序列化我的 JSON,其中 Posts 是我的 return 类型,response 是我的字符串。

通过捕获异常,我得到了如下所示的错误。

我目前有

        static readonly HttpClient client = new HttpClient();

        static async Task Main(string[] args)
        {
            await GetPostAsync();

        }

        static async Task GetPostAsync()
        {
            client.BaseAddress = new Uri("https://jsonplaceholder.typicode.com/");

            string location = "posts";

            try
            {
                string response = await client.GetStringAsync(location);

                Posts deserializedPosts = JsonSerializer.Deserialize<Posts>(response);

                Console.WriteLine(deserializedPosts);

            }
            catch (System.Exception e)
            {
                Console.WriteLine(e);
            }
        }

        class Posts
        {
            public int userId { get; set; }
            public int id { get; set; }
            public string title { get; set; }
            public string body { get; set; }
        }

我收到的错误

System.Text.Json.JsonException: The JSON value could not be converted to fugo.Program+Posts. Path: $ | LineNumber: 0 | BytePositionInLine: 1.
   at System.Text.Json.ThrowHelper.ThrowJsonException_DeserializeUnableToConvertValue(Type propertyType)
   at System.Text.Json.JsonSerializer.HandleStartArray(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& state)
   at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
   at System.Text.Json.JsonSerializer.ReadCore(Type returnType, JsonSerializerOptions options, Utf8JsonReader& reader)
   at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
   at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options)
   at fugo.Program.GetPostAsync() in /home/kepler/PROJECTS/C-SHARP/fugo/Program.cs:line 27

更改此行:

Posts deserializedPosts = JsonSerializer.Deserialize<Posts>(response);

对此:

var deserializedPosts = JsonSerializer.Deserialize<List<Posts>>(response);

返回的数据是数组,不是对象。