【问题标题】:deserialize the following json response in c#在c#中反序列化以下json响应
【发布时间】:2013-02-14 19:27:46
【问题描述】:

谁能帮我反序列化以下 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 类,使反序列化后数据不为空。

【问题讨论】:

  • Deserializing JSON using C# 的可能重复项
  • “我有问题”并没有告诉我们什么是错误的。如果您希望我们能够找出您的问题,请更具体并描述正在发生的事情。
  • 请不要将代码发布为 cmets

标签: c# json deserialization


【解决方案1】:

使用 Newtonsoft.Json 的解决方案:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多