Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将JSON响应存储在类c中#_C#_Json - Fatal编程技术网

C# 将JSON响应存储在类c中#

C# 将JSON响应存储在类c中#,c#,json,C#,Json,我正在解析一个Json,并试图使用JavaScriptSerializer()将其存储在类中;这样我就可以通过直接调用该类来使用响应 下面是代码 protected void GetDetails_Click(object sender, EventArgs e) { var webClient = new WebClient(); string json = webClient.DownloadString(@"http://localhost/tes

我正在解析一个Json,并试图使用JavaScriptSerializer()将其存储在类中;这样我就可以通过直接调用该类来使用响应

下面是代码

 protected void GetDetails_Click(object sender, EventArgs e)
    {
        var webClient = new WebClient();
        string json = webClient.DownloadString(@"http://localhost/test.json?" + mobtxtb.Text);
        var jsonObj = new JavaScriptSerializer().Deserialize<Root>(json);
        Label1.Text = "RE Response Status :: " + jsonObj.statusCode.ToString();
        Label2.Text = "RE Status Deacription :: " + jsonObj.statusDesc.ToString();
        Label3.Text = "RecoID :: " + jsonObj.Reco.RecoID;
        Label[] rank = new Label[jsonObj.Reco.Channels.Count + 1];
        Label[] name = new Label[jsonObj.Reco.Channels.Count + 1];
        foreach (Channels c in jsonObj.Reco.Channels)
        {
            rank[c.rank] = new Label();
            name[c.rank] = new Label();
            rank[c.rank].Text = "Channel Priority :: " + c.rank.ToString();
            name[c.rank].Text = "Channel :: " + c.name.ToString();
            this.Controls.Add(new LiteralControl("<br />"));
            this.Controls.Add(rank[c.rank]);
            this.Controls.Add(new LiteralControl("<br />"));
            this.Controls.Add(name[c.rank]);
            string z = c.layout.ToString();
            foreach (layout l in c.layout)
            {

            }
            this.Controls.Add(new LiteralControl("<br />"));
        }
    }


public class Root
{
    public string statusDesc { get; set; }
    public reco Reco { get; set; }
    public int statusCode { get; set; }
}
public class birthday
{
    public List<string> bday { get; set; }
}
public class reco
{        
    public List<Channels> Channels  { get; set; }
    public int ClusterID { get; set; }
    public string RecoID { get; set; }
    public List<Carousel> carousel { get; set; }
    public List<birthday> birthday { get; set; }
}
public class Carousel
{
    public List<SUB> CarouselList { get; set; }
}
public class Channels
{
    public string name { get; set; }
    public int rank { get; set; }
    public List<layout> layout { get; set; }
}

public class layout
{
    public int id { get; set; }
    public c1 c1 { get; set; }
    public c2 c2 { get; set; }
    public c3 c3 { get; set; }
}

public class c1
{
    public PPD PPD { get; set; }
}
public class c2
{
    public SUB SUB { get; set; }
}
public class c3
{
    public VP VP { get; set; }
}

public class SUB
{
    public string eventID { get; set; }
    public string sname { get; set; }
    public string bid { get; set; }
    public string sid { get; set; }
    public string cid { get; set; }
}

public class PPD
{
    public string cid { get; set; }
}

public class VP
{
    public string cid { get; set; }
}
},, “状态代码”:0 }


这段代码一直工作到布局,但之后无法解析

我知道现在回答太晚了,但正如@gymni所建议的,newtonsoftlib对我来说非常有效

在类层次结构和json结构中几乎没有区别。例如:检查您的c1、c2和c3类以及它们各自在json中的结构。您将发现属性名称的差异。C1 C2 C3是随机的,它们可以是SUB VP或PPD中的任何一个。不确定如何处理此问题:-(然后添加这3个属性(副VP和PPD)在所有c1、c2和c3类中。它们中的任何一个都将被填充,您可以在c#code中进一步检查这些。如果您的JSON结构具有不同的键名,请对这些属性使用
字典
,并迭代字典以查找其所有键和值。如果您无法找出问题所在,请尝试使用newtonsoft库,它将我觉得很好。
{
   "statusDesc":"Success",
   "reco":{
      "birthday":[
         {
            "birthday":"Y"
         }
      ],
       "channels":[
         {
            "layout":{
               "c3":{
                  "PPD":{
                      "CID":36256
                  }
                },
                "id":3,
                "c1":{
                 "SUB":{
                      "eventID":"MOON_VID0021_007_VUC01486203_A",
                      "sname":"SunCorp Mobile Box Office",
                      "bid":"33764",
                      "sid":"YOYO_WEEKLYMOVIES",
                      "CID":"MOVIES_W"
                    }
               },
               "c2":{
                  "VP":{
                     "CID":35971
                  }
               }
            },
             "name":"Videos",
             "rank":1
     },
     {
        "layout":{
           "id":2,
           "c1":{
              "VP":{
                 "CID":36044
              }
           }
        },
        "name":"Music",
        "rank":2
     },
     {
        "layout":{
           "id":1,
           "c1":{
              "VP":{
                 "CID":33617
              }
           }
        },
        "name":"Images",
        "rank":3
     },
     {
        "layout":{
           "id":3,
           "c1":{
              "SUB":{
                 "sname":"SunCorp TV "
              }
           }
        },
        "name":"Live TV",
        "rank":4
     },
     {
        "layout":{
           "id":2,
           "c1":{
              "VP":{
                 "CID":34410
              }
           }
        },
        "name":"Games",
        "rank":5
     },
     {
        "layout":{
           "id":1,
           "c1":{
              "SUB":{
                 "eventID":"MOON_HLT0001_001_MED01484002_F",
                 "sname":"Health",
                 "bid":"33420",
                 "sid":"SEA_HEALTH",
                 "CID":"MHEALTH"
              }
           }
        },
        "name":"Health",
        "rank":6
     },
     {
        "layout":{
           "id":3,
           "c1":{
              "PPD":{
                 "CID":22
              }
           }
        },
        "name":"News",
        "rank":7
     },
     {
        "layout":{
           "id":2,
           "c1":{
              "PPD":{
                 "CID":12080
              }
           }
        },
        "name":"Astrology",
        "rank":8
     },
     {
        "layout":{
           "id":1,
           "c1":{
              "VP":{
                 "CID":34464
              }
           }
        },
        "name":"Devotional",
        "rank":9
     },
     {
        "layout":{
           "id":3,
           "c1":{
              "PPD":{
                 "CID":12033
              }
           }
        },
        "name":"Coupons",
        "rank":10
     },
     {
        "layout":{
           "id":3,
           "c1":{
              "PPD":{
                 "CID":34465
              }
           }
        },
        "name":"Caller Tunes",
        "rank":11
     },
     {
        "layout":{
           "id":3,
           "c1":{
              "PPD":{
                 "CID":18
              }
           }
        },
        "name":"Social",
        "rank":12
     }
  ],
  "clusterID":1835,
  "recoID":49785146390432821,
  "carousel":[
     {
        "SUB":{
           "eventID":"MOON_GAM0030_007_IND01482006_A",
           "sname":"SunCorp Fun Zone",
           "bid":12257,
           "sid":"IG_FUNZONEW",
           "CID":"IG_FUNZONEW"
        },
        "rank":1
     },
     {
        "SUB":{
           "eventID":"MOON_CST0035_007_HUN01488011_A",
           "sname":"Re. 1 Store Service",
           "bid":12146,
           "sid":"HNG_STOREW",
           "CID":"STORE_W"
        },
        "rank":2
     },
     {
        "SUB":{
           "eventID":"MOON_VTV0150_030_APA01504003_A",
           "sname":"SunCorp TV ",
           "bid":35544,
           "sid":"TV_ALLCHANNEL_M",
           "CID":"ALLCHANNEL_M"
        },
        "rank":3
     }
  ]