I am trying to use JSON.Net to deserialize a JSON object into a C # object.
The object I want to create is MonthlyPerformance , which contains a Type list, which contains a Categories list, which in turn contains a Funds list. They are defined as:
 public class MonthlyPerformance { public List<Type> Types { get; set; } } public class Type { public int Id { get; set; } public string CountryId { get; set; } public string Name { get; set; } public List<Category> Categories { get; set; } public Type() { } } public class Category { public int Id { get; set; } public string CountryId { get; set; } public string Name { get; set; } public List<ConfigurationFund> Funds { get; set; } public Category() { } } public class Fund { public int Id { get; set; } public string CountryId { get; set; } public string Name { get; set; } public Fund() { } } 
I thought the following would do it, but it is not. It simply creates an instance of the Type object with all null:
 var file = File.ReadAllText(filePath); var types = JsonConvert.DeserializeObject<Type>(file); 
This is the JSON I am using:
 { "MonthlyPerformance": { "Type": [ { "id": "65", "countryId": "IE", "name": "Irish Domestic Funds (Gross)", "Category": [ { "id": "25003334", "countryId": "IE", "name": "UK Equity", "ConfigurationFund": [ { "id": "25000301", "countryId": "IE", "name": "Aviva Irl UK Equity Fund" }, { "id": "25000349", "countryId": "IE", "name": "New Ireland UK Equity 9" } ] }, { "id": "25003339", "countryId": "IE", "name": "Irish Equity", "Fund": [ { "id": "25000279", "countryId": "IE", "name": "Friends First Irish Equity G" }, { "id": "25000305", "countryId": "IE", "name": "Irish Life Celticscope 2 G" } ] } ] }, { "id": "80", "countryId": "IE", "name": "Irish Individual Pensions", "Category": [ { "id": "25003347", "countryId": "IE", "name": "Asia Pacific Ex-Japan Equity", "Fund": [ { "id": "25001789", "countryId": "IE", "name": "Aviva Irl Pacific Basin Eq" }, { "id": "25002260", "countryId": "IE", "name": "Ir Life Pacific Eq Indexed P" } ] }, { "id": "25003365", "countryId": "IE", "name": "Flexible Equity", "Fund": [ { "id": "25003238", "countryId": "IE", "name": "Friends First Protected Equity Plus Fund S2" }, { "id": "25003267", "countryId": "IE", "name": "Friends First Protected Equity Plus Bond G" } ] } ] } ] } } 
What do I need to do to make this work?
edited to include MonthlyPerformance