我是C#的新手,所以我不太瞭解它。我想反序列化json對象,但我遇到了一些問題。C#json反序列化對象
氏是JSON對象:
var json = "[{
"idSite":"1",
"visitorId":"a393fed00271f588",
"actionDetails":[{
"type":"action",
"url":"http:\/\/mysite.info\/test-24\/",
"customVariables":{
"1":{
"customVariablePageName1":"URL",
"customVariablePageValue1":"http:\/\/mysite.info\/p"
}
},
"timeSpent":"78",
}]
}]";
,我試圖反序列化它是這樣的:
var visits = JsonConvert.DeserializeObject<VisitorDetails[]>(json);
public class VisitorDetails
{
public string idSite { get; set; }
public string visitorId { get; set; }
public List<ActionDetail> actionDetails { get; set; }
}
public class ActionDetail
{
public string type { get; set; }
public string url { get; set; }
public string timeSpent { get; set; }
public object customVariables { get; set; }
}
一切都很好,除了在 「customVariables」 「ActionDetails」 它只是設置以一個值作爲字符串反對:
{
"1":{
"customVariablePageName1":"URL",
"customVariablePageValue1":"http:\/\/mysite.info\/p"
}
}
它根本不反序列化它。
我需要這個反序列化,所以我可以說:
foreach (var visit in Model.PiwikInfo)
{
@foreach (var action in visit.actionDetails)
{
@if (action.customVariables != null && action.customVariables.Any())
{
foreach (var cv in visit.customVariables.Where(cv => cv.HasProperty("customVariablePageName1")))
{
<span>URL: @cv.GetProperty("customVariablePageValue1")</span>
}
}
}
}
我無法更改json,我從一個API獲取響應。也沒有嘗試內置函數,因爲出於某種原因,我需要通過這種方式進行工作。 – carpics