繁体   English   中英

在Windows Phone7 C#中使用JSON.net解析JSON

[英]Parsing json with JSON.net on windows phone7 c#

我是WP的新手开发人员。 我在解析json数据时遇到一些问题。 我从网站上获取并使用JSON.Net进行解析。

JSON数据示例:

{“ openfooty”:{“ version”:“ 1.0”,“ response”:{“ status”:“ ok”},“ teams”:{“ team”:[{“ id”:“ 660”,“ cdata” :“ Arsenal”},{“ id”:“ 661”,“ cdata”:“切尔西”},{“ id”:“ 662”,“ cdata”:“曼联”},{“ id”:“ 663 “,” cdata“:”利物浦“},{” id“:” 664“,” cdata“:”纽卡斯尔联队“},{” id“:” 665“,” cdata“:”阿斯顿维拉“},{ “ id”:“ 667”,“ cdata”:“富勒姆”},{“ id”:“ 670”,“ cdata”:“ Southampton”},{“ id”:“ 674”,“ cdata”:“ Everton “},{” id“:” 675“,” cdata“:”托特纳姆热刺“}},{” id“:” 676“,” cdata“:”曼彻斯特城“},{” id“:” 677“, “ cdata”:“诺威奇城”},{“ id”:“ 678”,“ cdata”:“西布罗姆维奇”“,{” id“:” 683“,” cdata“:”桑德兰“},{” id“:” 684“,” cdata“:”西汉姆联队“},{” id“:” 686“,” cdata“:”威根竞技“},{” id“:” 688“,” cdata“: “阅读”},{“ id”:“ 690”,“ cdata”:“斯托克城”},{“ id”:“ 702”,“ cdata”:“皇后公园巡游者”},{“ id”:“ 738“,” cdata“:”斯旺西“”}}}}

我需要解析团队名称,即“阿森纳”,“切尔西”等,最好是其ID并存储在列表中。 我制作的类(使用http://json2csharp.com/# )是:

public class Response
{
public string status { get; set; }
}

public class Team
{
public string id { get; set; }
public string cdata { get; set; }
}

public class Teams
{
public List<Team> team { get; set; }
}

public class Openfooty
{
public string version { get; set; }
public Response response { get; set; }
public Teams teams { get; set; }
}

public class RootObject
{
public Openfooty openfooty { get; set; }
} 

我在cs页面中执行此操作:

    public class Loaddata
    {

        public  Loaddata()
        {

            if (NetworkInterface.GetIsNetworkAvailable())
            {
                WebClient proxy = new WebClient();
                proxy.DownloadStringCompleted += new DownloadStringCompletedEventHandler(proxy_DownloadStringCompleted);
                proxy.DownloadStringAsync(new Uri("http://api.openfooty.org/1.0/league.getTeams?api_key=4&league_id=8&format=json"));


            }


        }


     void  proxy_DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e)
        {
            if (e.Error != null) return;
            {

              var o = JObject.Parse(e.Result);

              var x= o["openfooty"].First.First["team"];
              string name = x.Value<string>();}}

但我没有得到解析的数据。 需要帮助! 谢谢 :)

你为什么要像var x= o["openfooty"].First.First["team"];这样的动态方式var x= o["openfooty"].First.First["team"]; 当您声明了所有类时。

这有效

 RootObject root = JsonConvert.DeserializeObject<RootObject>(e.Result); 
 var id = root.openfooty.teams.team[0].id; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM