В настоящее время я пытаюсь проанализировать результаты API Piwik на список объектов C#. Однако способ форматирования Json на самом деле не позволяет мне это делать.Работа с массивами «Malformated»
Я получаю следующие данные из API Piwik (данные выборок):
{ "2012-05-27" : [ ],
"2012-05-28" : [ ],
"2012-05-29" : { "avg_time_on_site" : 309,
"bounce_count" : 1,
"bounce_rate" : "33%",
"max_actions" : 36,
"nb_actions" : 72,
"nb_actions_per_visit" : 24,
"nb_uniq_visitors" : 2,
"nb_visits" : 3,
"sum_visit_length" : 928
},
"2012-05-30" : { "avg_time_on_site" : 263,
"bounce_rate" : "0%",
"max_actions" : 37,
"nb_actions" : 70,
"nb_actions_per_visit" : 23.300000000000001,
"nb_uniq_visitors" : 3,
"nb_visits" : 3,
"sum_visit_length" : 788
}
}
Теперь, я создал тип «VisitsSummary», к которому я хочу бросить Джейсон «в» каждую дате:
public class VisitsSummaryResult
{
[JsonProperty("nb_uniq_visitors")]
public int NumUniqueVisitors { get; set; }
[JsonProperty("nb_visits")]
public int NumVisits { get; set; }
[JsonProperty("nb_actions")]
public int NumActions { get; set; }
[JsonProperty("nb_visits_converted")]
public int NumVisitsConverted { get; set; }
[JsonProperty("bounce_count")]
public int BounceCount { get; set; }
[JsonProperty("sum_visit_length")]
public int SumVisitLength { get; set; }
[JsonProperty("max_actions")]
public int MaxActions { get; set; }
[JsonProperty("bounce_rate")]
public string BounceRate { get; set; }
[JsonProperty("nb_actions_per_visit")]
public double NumActionsPerVisit { get; set; }
[JsonProperty("avg_time_on_site")]
public int AverageTimeOnSite { get; set; }
}
Однако, поскольку данные отформатированы с использованием дат в массиве, я не могу заставить Json.NET понять, что он должен рассматривать его как массив. Имеет ли это смысл?
Кроме того, было бы удобно автоматически сообщать Json.NET для анализа даты в свойство VisitsSummaryResult - это как-то возможно? Затем я мог бы добавить «VisitsSummaryResult.Date» в класс, чтобы полностью обернуть все это в один объект.
В настоящее время я могу думать только о предварительном анализе сам Json, а затем передать отдельные фрагменты Json Json.NET для преобразования в объекты C#, но это не так оптимально.
У кого-нибудь есть указатель относительно того, как решить эту проблему?
¡Gracias!
EDIT: Я также попробовал его с помощью общего словаря, чтобы получить Key-> Value (Date-> VisitsSummaryResult), но безрезультатно.
JsonConvert.DeserializeObject<Dictionary<string, VisitsSummaryResult>>(e.Result);