I am trying to deserialize a json data into a model class but I am failing. Here is what I do:
public CountryModel GetCountries() { using (WebClient client = new WebClient()) { var result = client.DownloadString("http://api.worldbank.org/incomeLevels/LIC/countries?format=json"); var output = JsonConvert.DeserializeObject<List<CountryModel>>(result); return output.First(); } }
This is how my model looks like:
public class CountryModel { public int Page { get; set; } public int Pages { get; set; } public int Per_Page { get; set; } public int Total { get; set; } public List<Country> Countries { get; set; } } public class Country { public int Id { get; set; } public string Iso2Code { get; set; } public string Name { get; set; } public Region Region { get; set; } } public class Region { public int Id { get; set; } public string Value { get; set; } }
You can see the Json I am getting here: http://api.worldbank.org/incomeLevels/LIC/countries?format=json
This is the error I get:
Cannot deserialize JSON array into type 'Mvc4AsyncSample.Models.CountryModel'. Line 1, position 1.