2013-10-29 6 views
0

Wunderground의 API에서 반환 된 정보가 포함 된 클래스 인 "Alerts"가 있습니다. 그런 다음 다른 클래스가 "경고", "경고"안에 있습니다. 내 코드는 다음과 같습니다.목록의 필드 값 검색

public class Alerts 
{ 
    public class Features 
    { 
     public int alerts { get; set; } 
    } 

    public class Response 
    { 
     public string version { get; set; } 
     public string termsofService { get; set; } 
     public Features features { get; set; } 
    } 

    public class ZONED 
    { 
     public string state { get; set; } 
     public string ZONE { get; set; } 
    } 

    public class StormBased 
    { 
    } 

    public class Alert 
    { 
     public string type { get; set; } 
     public string description { get; set; } 
     public string date { get; set; } 
     public string date_epoch { get; set; } 
     public string expires { get; set; } 
     public string expires_epoch { get; set; } 
     public string message { get; set; } 
     public string phenomena { get; set; } 
     public string significance { get; set; } 
     public List<ZONED> ZONES { get; set; } 
     public StormBased StormBased { get; set; } 
    } 

    public class RootObject 
    { 
     public Response response { get; set; } 
     public string query_zone { get; set; } 
     public List<Alert> alerts { get; set; } 
    } 
    public class AlertsUpdateState 
    { 
     public HttpWebRequest AsyncRequest { get; set; } 
     public HttpWebResponse AsyncResponse { get; set; } 
    } 
} 

앱이 시작될 때 RootObject를 만들고 나중에 JSON을 사용하여 값을 비 웁니다. 이 호출은 "response", "query_zone"및 "alerts"를 반환합니다. 이제 마지막 경고 유형은 발급 된 경고의 유형, 설명 등을 포함하는 Alert 유형 목록입니다.

그래서이 목록을 alertVar로 저장했습니다. 여기에는 개수를 포함하여 여러 가지 방법이 있습니다. 얼마나 많은 경고가 나오는지 파악할 수 있지만 계속 진행하는 방법을 모르겠습니다.

이 목록으로 문자열 값 (예 : 유형)을 검색하려면 어떻게해야합니까? 이 긴 문자열 (some_string) 모든 유형을 추가합니다

string some_string; 
foreach (var alert in alertVar) 
{ 
    some_string += alert.type + ", "; 
} 

:

+0

어떻게 이동 하시겠습니까? RootObject 클래스에 리스트가 있습니다. 무엇을하고 싶습니까? 그것은 목록입니다. 당신은 foreach (경고의 var alert)와 같은 것을 할 수 있습니다. – Faraday

+0

값을 꺼내는 방법을 이해하지 못합니다. foreach 문을 시도했지만 실제 필드 값을 얻을 수 있도록 형식을 지정하는 방법은 무엇입니까? –

+0

기본 예제를 추가했습니다. – Faraday

답변

0

alertVar를 가정하면 Alert의 목록입니다, 당신은 뭔가를 할 수 있습니다. 당신은 ... 당신이 원하는 어느 속성에 대한 동일 할 수

당신이 이상 반복되는 항목을 사용하는 방법에 대한 기본적인 예이다
+0

감사합니다. 나는 그것이 단순한 느낌이었다. –

+0

그냥 nitpicking,하지만 목록에서 3 값을 넘으면 some_string + =, StringBuilder를 사용하지 마십시오. – Mathieson

+0

절대적으로 맞습니다. 문자열은 불변이고,'+ ='를 쓰면 새로운 문자열이 만들어 지지만 예제를 간결하게하기 위해 문자열 작성기를 만든 다음 추가하고 ToString()을 사용하면 ... ...'+ ='가 더 명확합니다 :) – Noctis

0
foreach (var alert in alerts) 
{ 
    var type = alert.type; 
    var description = alert.description 
} 

.

관련 문제