Я пытаюсь использовать JSON.Net для десериализации объекта JSON в объект C#.Как десериализовать этот JSON в объект?
Объект Я хочу создать это MonthlyPerformance
, который содержит список Type
, который содержит список Categories
, который, в свою очередь, содержит список Funds
. Они определены как:
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()
{
}
}
Я думал, что следующее будет сделано, но это не так. Это просто создает экземпляр объекта Type
со всем нулем:
var file = File.ReadAllText(filePath);
var types = JsonConvert.DeserializeObject<Type>(file);
Это JSON, что я использую:
{
"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"
}
]
}
]
}
]
}
}
Что мне нужно сделать, чтобы получить эту работу?
отредактированы включить MonthlyPerformance
вы думаете, что ваш код имеет в виду тип вы определили или предопределенный 'Type' в .net. также посмотрите на http://james.newtonking.com/projects/json-net.aspx – DarthVader
Привет @DarthVader, я вижу, что тип 'Type' находится в моем собственном пространстве имен. Даже когда я изменил его, чтобы попытаться создать экземпляр «MonthlyPerformance» (я обновил вопрос с этим), он по-прежнему ведет себя одинаково. – DaveDev