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