目前,我試圖從Piwik API解析結果到C#對象列表。然而,Json格式化的方式並不能讓我做到這一點。處理「Malformated」數組
我正在從Piwik API如下數據(樣本數據):
{ "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!
¡
編輯:我也試過用泛型字典來獲取Key-> Value(Date-> VisitsSummaryResult),但無濟於事。
JsonConvert.DeserializeObject<Dictionary<string, VisitsSummaryResult>>(e.Result);