反序列化在C#以下JSON响应
问题描述:
有人可以帮我反序列化以下JSON字符串在C#中:反序列化在C#以下JSON响应
{"legend_size": 1,
"data": {"series": ["2013-02-05", "2013-02-06", "2013-02-07", "2013-02-08", "2013-02-09", "2013-02-10", "2013-02-11", "2013-02-12", "2013-02-13", "2013-02-14"], "values":
{"CampaignHit": {"2013-02-14": 0, "2013-02-13": 0, "2013-02-12": 0, "2013-02-11": 0, "2013-02-10": 0, "2013-02-08": 11, "2013-02-05": 0, "2013-02-07": 14, "2013-02-06": 0, "2013-02-09": 0}}}}
我有与CampaignHit
部分问题。我无法反序列化它。
下面是我创建的类:
public class ExportedData
{
public string legend_size { get; set; }
public Data data { get; set; }
}
public class Data
{
public string[] series { get; set; }
public Values values { get; set; }
}
public class Values
{
public CampaignHit CampaignHit { get; set; }
}
public class CampaignHit
{
public CampaignData[] data { get; set; }
}
public class CampaignData
{
public object first { get; set; }
public object second { get; set; }
}
这里是反序列化JSON的代码:
var result = JsonConvert.DeserializeObject<ExportedData>(jsonResponse);
数据部分为空。如何更改CampaignHit
类,以便反序列化后数据不为空。
答
使用Newtonsoft.Json A液:
JObject jObject = JObject.Parse(@"{
'legend_size': 1,
'data': {
'series': [
'2013-02-05', '2013-02-06', '2013-02-07', '2013-02-08', '2013-02-09', '2013-02-10', '2013-02-11', '2013-02-12', '2013-02-13', '2013-02-14'
],
'values': {
'CampaignHit': {
'2013-02-14': 0,
'2013-02-13': 0,
'2013-02-12': 0,
'2013-02-11': 0,
'2013-02-10': 0,
'2013-02-08': 11,
'2013-02-05': 0,
'2013-02-07': 14,
'2013-02-06': 0,
'2013-02-09': 0
}
}
}
}");
var campaignHit = jObject["data"]["values"]["CampaignHit"];
Dictionary<string,int> campaignHitDic = new Dictionary<string,int>();
foreach(JProperty c in campaignHit){
campaignHitDic.Add(c.Name,(int)c.Value);
}
[反序列化JSON使用C#]的可能重复(http://stackoverflow.com/questions/4521239/deserializing-json-using-c-sharp) – 2013-02-14 19:29:31
“我有问题”并没有告诉我们什么是错的。请更具体一些,并描述发生了什么,如果你希望我们能够弄清楚你的问题。 – yoozer8 2013-02-14 19:31:29
请勿将代码张贴为评论 – 2013-02-14 19:33:21