Десериализация c#

Пишу консольное приложение которое будет делать запрос к api и полученный ответ выводить на консоль. Но не могу отформатировать вывод, api выдает много ненужной инфы, не могу понять как это правильно десериализовать

Console.WriteLine("input country name");
string name = Console.ReadLine();

var client = new RestClient("https://restcountries-v1.p.rapidapi.com/name/" + name);
var request = new RestRequest(Method.GET);
request.AddHeader("x-rapidapi-host", "restcountries-v1.p.rapidapi.com");
request.AddHeader("x-rapidapi-key", "7ad6273cfamshbec0ad25232fe87p1ade6ejsnd0fa171f378e");
IRestResponse response = client.Execute(request);
string stream = response.Content;

CountryInfo countryInfo = JsonConvert.DeserializeObject<CountryInfo>(stream);
Console.WriteLine(countryInfo.Name, countryInfo.CountryCode, countryInfo.Capital, countryInfo.Area, countryInfo.Population, countryInfo.Region);

"CountryInfo" - класс, в котором я описал все необходимые мне сущности с геттерами сеттерами, но привести ответ к этому виду никак не получается.

public class CountryInfo
{
    [DeserializeAs(Name = "name")]
    public string Name { get; set; }
    [DeserializeAs(Name = "numericCode")]
    public int CountryCode { get; set; }

    [DeserializeAs(Name = "capital")]
    public string Capital { get; set; }
    [DeserializeAs(Name = "area")]
    public float Area { get; set; }

    [DeserializeAs(Name = "popilation")]
    public decimal Population { get; set; }
    [DeserializeAs(Name = "region")]
    public string Region { get; set; }
}

То, что записалось в переменную, отвечающую за ответ api

[
  {
    "name": "United States",
    "topLevelDomain": [
      ".us"
    ],
    "alpha2Code": "US",
    "alpha3Code": "USA",
    "callingCodes": [
      "1"
    ],
    "capital": "Washington, D.C.",
    "altSpellings": [
      "US",
      "USA",
      "United States of America"
    ],
    "region": "Americas",
    "subregion": "Northern America",
    "population": 321645000,
    "latlng": [
      38,
      -97
    ],
    "demonym": "American",
    "area": 9629091,
    "gini": 48,
    "timezones": [
      "UTC-12:00",
      "UTC-11:00",
      "UTC-10:00",
      "UTC-09:00",
      "UTC-08:00",
      "UTC-07:00",
      "UTC-06:00",
      "UTC-05:00",
      "UTC-04:00",
      "UTC+10:00",
      "UTC+12:00"
    ],
    "borders": [
      "CAN",
      "MEX"
    ],
    "nativeName": "United States",
    "numericCode": "840",
    "currencies": [
      "USD",
      "USN",
      "USS"
    ],
    "languages": [
      "en"
    ],
    "translations": {
      "de": "Vereinigte Staaten von Amerika",
      "es": "Estados Unidos",
      "fr": "États-Unis",
      "ja": "アメリカ合衆国",
      "it": "Stati Uniti D'America"
    },
    "relevance": "3.5"
  }
]

Ответы (1 шт):

Автор решения: aepot

@EvgeniyZ прав

Это же массив...

И мне кажется, что должно быть что-то типа такого:

List<CountryInfo> countryList = JsonConvert.DeserializeObject<List<CountryInfo>>(stream);
foreach (CountryInfo countryInfo in countryList)
{
    Console.WriteLine(countryInfo.Name, countryInfo.CountryCode, countryInfo.Capital, countryInfo.Area, countryInfo.Population, countryInfo.Region);
}
→ Ссылка