2012-12-03 4 views
1

전 WP에 대한 초보 개발자입니다. json 데이터를 파싱하는 데 문제가 있습니다. 웹 사이트에서 가져와 JSON.Net과 구문 분석합니다. JSON 데이터의Windows에서 JSON.net으로 json을 구문 분석 phone7 C#

예 :

{ "openfooty": { "버전": "1.0", "응답": { "상태": "확인"}, "팀": { "팀" { "id": "660", "cdata": "Arsenal"}, { "id": "661", "cdata": "Chelsea"}, { "id": "662" "664", "cdata": "Newcastle United"}, { "id": "665", "cdata": "Liverpool" ","cdata ":"Aston Villa "}, {"id ":"667 ","cdata ":"풀럼 "}, {"id ":"670 ","cdata ":"Southampton "}, {" "674", "cdata": "Everton"}, { "id": "675", "cdata": "토트넘 핫스퍼"}, { "id": "676", "cdata": "맨체스터 ""id ":"678 ","cdata ":"West Bromwich Albion "}, {"id ":"683 " "cdata": "Sunderland"}, { "id": "684", "cdata": "West Ham United"}, { "id": "686", "cdata": "Wigan Athletic"}, { "id": "688", "cdata": "Reading"}, { "id": "690", "cdata": "스토크 시티"}, { "id": "702" a ":"Queens Park Rangers "}, {"id ":"738 ","cdata ":"Swansea City "}]}}}

팀 이름, 즉"arsenal "," 첼시 (chelsea) "등을 선호하며 목록에 저장하십시오. 내가 (http://json2csharp.com/#를 사용하여) 만들어 놓은 클래스는 다음과 같습니다

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

하지만 난 구문 분석 된 데이터를 얻을 해달라고 :

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 페이지에서이 작업을 수행. 도움이 필요하다! 고마워요 :)

+0

작동합니다. 감사합니다 :) –

답변

1

당신은 모든 클래스를 선언했을 때 왜 var x= o["openfooty"].First.First["team"];처럼 동적 인 방식으로 이동합니까?

이 내가 의도적으로 잘못된 URI를 넣었습니다

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

고마워요! :디 –

관련 문제