2015-01-16 3 views
0

간단한 날씨 앱을 만들려고 노력하고 있으며 YahooWeather API를 사용하고 있습니다. 그래서 나는이 같은 응답 뭔가 얻을 : 여기에서 필요한Parse YahooWeather JSON 응답

/**/yqlCallback({ 
    "query": { 
     "count": 3, 
     "results": { 
      "channel": [{ 
       "item": { 
        "pubDate": "Fri, 16 Jan 2015 11:00 am EET", 
        "condition": { 
         "temp": "1", 
         "text": "Cloudy" 
        }, 
       } 
      }, 
      { 
       "item": { 
        "title": "1", 

       } 
      }, 
      { 
       "item": { 
        "title": "2", 

       } 

      }] 
     } 
    } 
}); 

유일한 데이터의를 pubDate의, 온도 및 텍스트입니다. 그래서 여기에 그 값들을 얻으려고 노력하는 방법이 있습니다.

JSONObject main = json.getJSONObject("query").getJSONObject("result").getJSONArray("channel") 
    .getJSONObject(0); 
    JSONObject details = main.getJSONObject("condition"); 
String t1 = details.getString("text"); 
String t2 = details.getString("temp"); 
String t3 = main.getString("pubDate"); 

이주고의 날이 오류 : JSON 데이터에없는 하나 개 이상의 필드.

답변

0

현재 json에는 JSONObject이 있으며 result 키가 있습니다. query 된 JSONObject에서 JSONObejct를 얻을 수 results 대신 result를 사용

JSONObject main = json.getJSONObject("query"). 
       getJSONObject("results").getJSONArray("channel"); 
JSONObject items = main.getJSONObject("item"); 
JSONObject details = items.getJSONObject("condition"); 
String t1 = details.getString("text"); 
String t2 = details.getString("temp"); 
+0

오, 고마워, 내 실수이지만, 어쨌든 작동하지 않는다. ... – WdarinS

+0

@WdarinS : 내 편집 대답보기'condition' 객체가'item' jsonObject에있다. 그래서 main에서'item' 객체를 먼저 얻어야한다. 그것으로부터 '조건' –

0

문제는 내가, 어쨌든 .getJSONArray("channel").getJSONObject(0).getJsSONObject("item"); 의 말에 감사를 추가 할 필요가 있다고했다.