Я пытаюсь десериализации следующего в C классы #:десериализация JSON список/массив классов C#
{
"response" : {
"" : {
"Expense" : [[{
"chart_of_accounts_id" : "45f2fd8f-68b2-44cc-b07ac031c97cd96c",
"account_name" : "Salaries",
"amount" : "1500.00",
"entry_type" : "Debit",
"business_id" : "528f00bb-8cd8-4e7f-be6a-0724c327a7be",
"account_category" : "5"
}, {
"chart_of_accounts_id" : "45f2fd8f-68b2-44cc-b07ac031c97cd96c",
"account_name" : "Salaries",
"amount" : "200.00",
"entry_type" : "Debit",
"business_id" : "528f00bb-8cd8-4e7f-be6a-0724c327a7be",
"account_category" : "5"
}
]]
}
},
"messages" : {
"msgs" : "",
"errs" : ""
}
}
Я следующий до сих пор, но я получаю ошибку «не может десериализации текущего объекта JSON (например, { «name»: «value»}) в тип «Systems.Collections.Generic.List'1 [eko_app.Expenses + ExpensesResponse]», потому что для десериализации правильно нужен массив JSON (например, [1,2,3]) »
public class Expense
{
public string chart_of_accounts_id { get; set; }
public string account_name { get; set; }
public decimal amount { get; set; }
public string entry_type { get; set; }
public string business_id { get; set; }
public int account_category { get; set; }
}
public class ExpensesResponse
{
public List<Expense> Expense { get; set; }
}
public class Messages
{
public string msgs { get; set; }
public string errs { get; set; }
}
public class RootObject
{
public List<ExpensesResponse> response { get; set; }
public Messages messages { get; set; }
}
// deserialize the json to c# .net
var response = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonData);
if (response != null)
{
expenses = response.response;
}
Что мне делать, чтобы исправить это?
Это «KeyValuePair». Вы можете использовать 'Dictionary' для него. –
Почему у вас пустой ключ?! –
@ Joffrey Kern, мне просто прислали звонки Json Api, и это тот, с которым у меня проблемы. –