1

私はWPの初心者開発者です。jsonデータの解析に問題があります。Webサイトから取得し、JSON.Netで解析します。

JSONデータの例:

{"openfooty":{"version": "1.0"、 "response":{"status": "ok"}、 "teams":{"team":[{"id": "660"、 "cdata" :"アーセナル"}、{"id": "661"、 "cdata": "チェルシー"}、{"id": "662"、 "cdata": "マンチェスターユナイテッド"}、{"id": "663 "、" cdata ":"リバプール "}、{" id ":" 664 "、" cdata ":"ニューカッスルユナイテッド "}、{" id ":" 665 "、" cdata ":"アストンヴィラ "}、{ "id": "667"、 "cdata": "Fulham"}、{"id": "670"、 "cdata": "Southampton"}、{"id": "674"、 "cdata": "Everton "}、{" id ":" 675 "、"cdata ":" Tottenham Hotspur "}、{" id ":" 676 "、" cdata ":" Manchester City "}、{" id ":" 677 "、" cdata ":" Norwich City "}、{" id ":" 678 "、" cdata ":" West Bromwich Albion "}、{" id ":" 683 "、" cdata ":" Sunderland "}、{" id ":" 684 "、" cdata ":" Westハムユナイテッド"}、{" id ":" 686 "、" cdata ":"ウィガンアスレチック "}、{" id ":" 688 "、" cdata ":"リーディング "}、{" id ":" 690 " 、"cdata": "ストークシティ"}、{"id": "702"、 "cdata": "クイーンズパークレンジャーズ"}、{"id": "738"、 "cdata":"スウォンジーシティ"}] }}}}、{"id": "676"、 "cdata": "マンチェスターシティ"}、{"id": "677"、 "cdata": "ノリッジシティ"}、{"id": "678"、 " cdata ":" West Bromwich Albion "}、{" id ":" 683 "、" cdata ":" Sunderland "}、{" id ":" 684 "、" cdata ":"ウェストハムユナイテッド "}、{" id ":" 686 "、" cdata ":" Wigan Athletic "}、{" id ":" 688 "、" cdata ":" Reading "}、{" id ":" 690 "、" cdata ":"ストークCity "}、{" id ":" 702 "、" cdata ":" Queens Park Rangers "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}}、{"id": "676"、 "cdata": "マンチェスターシティ"}、{"id": "677"、 "cdata": "ノリッジシティ"}、{"id": "678"、 " cdata ":" West Bromwich Albion "}、{" id ":" 683 "、" cdata ":" Sunderland "}、{" id ":" 684 "、" cdata ":"ウェストハムユナイテッド "}、{" id ":" 686 "、" cdata ":" Wigan Athletic "}、{" id ":" 688 "、" cdata ":" Reading "}、{" id ":" 690 "、" cdata ":"ストークCity "}、{" id ":" 702 "、" cdata ":" Queens Park Rangers "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}{"id": "677"、 "cdata": "Norwich City"}、{"id": "678"、 "cdata": "West Bromwich Albion"}、{"id": "683"、 "cdata ":"サンダーランド "}、{" id ":" 684 "、" cdata ":"ウェストハムユナイテッド "}、{" id ":" 686 "、" cdata ":"ウィガンアスレチック "}、{" id " :"688"、 "cdata": "Reading"}、{"id": "690"、 "cdata": "Stoke City"}、{"id": "702"、 "cdata": "Queens Park Rangers "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}{"id": "677"、 "cdata": "Norwich City"}、{"id": "678"、 "cdata": "West Bromwich Albion"}、{"id": "683"、 "cdata ":"サンダーランド "}、{" id ":" 684 "、" cdata ":"ウェストハムユナイテッド "}、{" id ":" 686 "、" cdata ":"ウィガンアスレチック "}、{" id " :"688"、 "cdata": "Reading"}、{"id": "690"、 "cdata": "Stoke City"}、{"id": "702"、 "cdata": "Queens Park Rangers "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}{"id": "683"、 "cdata": "Sunderland"}、{"id": "684"、 "cdata": "ウェストハムユナイテッド"}、{"id": "686"、 "cdata" :"Wigan Athletic"}、{"id": "688"、 "cdata": "Reading"}、{"id": "690"、 "cdata": "Stoke City"}、{"id": " 702 "、" cdata ":"クイーンズパークレンジャーズ "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}{"id": "683"、 "cdata": "Sunderland"}、{"id": "684"、 "cdata": "ウェストハムユナイテッド"}、{"id": "686"、 "cdata" :"Wigan Athletic"}、{"id": "688"、 "cdata": "Reading"}、{"id": "690"、 "cdata": "Stoke City"}、{"id": " 702 "、" cdata ":"クイーンズパークレンジャーズ "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ "}]}}}690 "、" cdata ":"ストークシティ "}、{" id ":" 702 "、" cdata ":"クイーンズパークレンジャーズ "}、{" id ":" 738 "、" cdata ":"スウォンジーシティ " }]}}}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>();}}

しかし、私は解析されたデータを取得しません。ヘルプが必要です!ありがとう :)

4

1 に答える 1

1

var x= o["openfooty"].First.First["team"];すべてのクラスを宣言したときのように、なぜ動的に進むのですか。

これは動作します

 RootObject root = JsonConvert.DeserializeObject<RootObject>(e.Result); 
 var id = root.openfooty.teams.team[0].id; 
于 2012-12-03T15:50:06.867 に答える