json으로 받은 공공데이터를 원하는 데이터만 출력할려면 어떻게 해야하나요?
글쓴이: wnsdud9984 / 작성시간: 화, 2015/07/14 - 4:29오후
자바를 이용해서 공공데이터 포널에서 주는 데이터를 편집을 할려고 합니다.
본래 공공데이터 포털에서 주는 데이터가
{ "response": { "header": { "resultCode": "00", "resultMsg": "NORMAL SERVICE." }, "body": { "items": { "item": [ { 실제 데이터 } ] }, "numOfRows": 1, "pageNo": 1, "totalCount": 244 } } }
위에처럼 올때
다른거 다 빼어버리고
"item":[ { 실제 데이터 } ]
처럼 만들고 싶습니다.
그런데 가장 밖았의 "response"만 지워집니다.
지적 부탁드립니다.
try{ JSONObject json = new JSONObject(result); json = json.getJSONObject("response"); result = json.toString(); JSONObject header = json.getJSONObject("header"); String code, msg; code = header.getString("resultCode"); msg = header.getString("resultMsg"); if(code.equals("00") && msg.equals("NORMAL SERVICE")){ JSONObject body = json.getJSONObject("body"); body = body.getJSONObject("items"); JSONArray ary = new JSONArray(); ary = body.getJSONArray("item"); ArrayList<drugItem> aList = new ArrayList<drugItem>(); for(int i = 0 ; i < ary.length(); i++){ JSONObject tmp = ary.getJSONObject(i); drugItem tItem = new drugItem(); tItem.dutyName = tmp.getString("dutyName"); tItem.dutyAddr = tmp.getString("dutyAddr"); tItem.wgs84Lat = tmp.getDouble("wgs84Lat"); tItem.wgs84Lon = tmp.getDouble("wgs84Lon"); tItem.hpid = tmp.getString("hpid"); aList.add(tItem); } JSONArray newAry = new JSONArray(); JSONObject newObj = new JSONObject(); for(int i=0; i< aList.size(); i++){ JSONObject tmp = new JSONObject(); drugItem tTmp = aList.get(i); tmp.put("dutyName", tTmp.dutyName); //약국 이름 tmp.put("dutyAddr", tTmp.dutyAddr); //약국 주소 tmp.put("wgs84Lat", tTmp.wgs84Lat); //위도 tmp.put("wgs84Lon", tTmp.wgs84Lon); //경도 tmp.put("hpid", tTmp.hpid); //ID값 newAry.put(tmp); } newObj.put("data", newAry); result = newObj.toString(); } } catch (JSONException e) { e.printStackTrace(); }
Forums:
참조 항목이 잘못된 것 같습니다. 사용하는
참조 항목이 잘못된 것 같습니다.
사용하는 라이브러리가 달라서 메모리 해제 까지는 확인을 못했네요. 아마 다음처럼 하면 될 것 같습니다.
---------------------------------
제일 왼쪽이 저입니다 :)
댓글 달기