마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹으로 JSON 값을 요청해서 안드로이드에서 뿌려주고 싶습니다.

0 추천

안녕하십니까. 앱 개발 도중 어려운 부분이 있어 질문드립니다.

공공데이터포탈(opendata.kwater.or.kr)에서 JSON으로 주소 요청을 하면 

{"response":{"header":{"resultCode":"00","resultMsg":"NORMAL SERVICE."},"body":{"items":{"item":[{"item1":"무미","item2":"무취","item3":"불검출","item4":7,"item5":0.06,"item6":0.88,"mesurede":"20141007  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.4,"item5":0.07,"item6":0.83,"mesurede":"20141006  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.5,"item5":0.07,"item6":0.87,"mesurede":"20141005  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.5,"item5":0.07,"item6":0.81,"mesurede":"20141004  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.5,"item5":0.07,"item6":0.82,"mesurede":"20141003  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.5,"item5":0.07,"item6":0.87,"mesurede":"20141002  "},{"item1":"무미","item2":"무취","item3":"불검출","item4":7.5,"item5":0.06,"item6":0.88,"mesurede":"20141001  "}]}}}}

웹에서 다음과 같은 값을 출력해주는데요.. 이것을 안드로이드에서 주소 요청을 통해 어떤식으로 뿌려줘야 할지 모르겠습니다. JSON파싱하는 예제를 몇개 보았는데요 단순한 JSON형식이랑 조금 달라서 각각의 값을 어떤식으로 접근해야 할 지 잘 모르겠습니다.. 관련 예제를 몇개 찾아봤는데 개념이 아직 잘 안잡혀서 어떻게 해야될지 모르겠네요 ㅠㅠ 도움좀 받을 수 있을까요??

 

higuru (500 포인트) 님이 2015년 10월 19일 질문

2개의 답변

+4 추천
주소요청은 잘 하셨나보네요 이제 데이터를 꺼내오기만 하면 됩니다

JsonObjecet obj = new JsonObject(result) <- result가 string일 경우

volley 같은 라이브러리를 쓰시면 jsonRespone 가 있으니 그대로 사용하셔도 되구요

result 안에 header와 body가 있네요

JsonObject body = new JsonObject(obj.getString("body")

body를 꺼내왔더니 item이 array 형태로 존재하네요

JsonArray jarr = new JsonArray(body.getString("item")

item을 다 가지고 왔으니 value를 꺼내시면 됩니다.

jarr[0].getString("item1") 을 하시면 "무미"가 나오겠네요
홍월령 (4,240 포인트) 님이 2015년 10월 19일 답변
0 추천
서울시 공공데이터 써서 만들어봤는데, JsonObject로 일일이 수동으로 파싱하거나, 저거처럼 좀 더 신식의 방법으로 해도 됩니다.

https://github.com/susemi99/DataBinding-with-Volleyer-sample
쎄미 (162,410 포인트) 님이 2015년 10월 19일 답변
...