我是一名新手,对于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; }
}
除了“ActionDetails”中的“customVariables”只设置为一个字符串值的对象之外,一切都很好。
{
"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>
}
}
}
}