2013-02-14 37 views
-3

有人可以幫我反序列化以下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類,以便反序列化後數據不爲空。

+0

[反序列化JSON使用C#]的可能重複(http://stackoverflow.com/questions/4521239/deserializing-json-using-c-sharp) – 2013-02-14 19:29:31

+1

「我有問題」並沒有告訴我們什麼是錯的。請更具體一些,並描述發生了什麼,如果你希望我們能夠弄清楚你的問題。 – yoozer8 2013-02-14 19:31:29

+0

請勿將代碼張貼爲評論 – 2013-02-14 19:33:21

回答

1

使用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); 
}