-
java :: JSON DATA 원하는 값 MAP 형태로 리턴시키기.IT/Java & JSP & FW 2012. 12. 10. 14:44
전번 xml 탐사에 이은 json 탐사 입니다.
java 단에서 다 불러오는 거구요.
방식은 재귀 호출로 원하는 값을 Map형태로 담아서 리턴합니다.
선언부는 아래와 같이.import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
한번 살펴 보시면 좋을껏 같습니다. ^^/** JSON URL 호출 **/ private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); } /** 호출할 json URL 입력(시작메소드) **/ public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is = null; try { is = new URL(url).openStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("EUC-KR"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { is.close(); } } public Object getJSON(String json, String searchWord, Map<String, Object> resultMap) { //Json DATA 전 영역 탐사 및 원하는 데이터를 Map 형태로 리턴시킴 JSONObject jsonObj = null; try { jsonObj = new JSONObject(json); Iterator itr = jsonObj.keys(); int countJSON = 0; while (itr.hasNext()) { String key = (String)itr.next(); Object value = jsonObj.get(key); String selecter = (String)value.toString(); if(key.equals(searchWord)){ // 조건에 걸린 word 값을 찾아서 map 형태로 리턴 resultMap.put(key, value); } if(selecter != null && !selecter.equals("") && !selecter.equals("null") && jsonObj.get(key) instanceof JSONArray){ if((JSONArray)jsonObj.get(key) instanceof JSONArray){ JSONArray jsonArray = (JSONArray)jsonObj.get(key); //this.logger.debug(jsonArray.toString()); for(int i = 0 ; i<jsonArray.length() ; i++){ jsonArray.get(i); JSONObject jsonObj2 = new JSONObject(jsonArray.get(i).toString()); getJSON(jsonObj2.toString(), searchWord, resultMap); } } } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return resultMap; } //소스제공 :: http://zion437.tistory.com (by. 엑수시아)
'IT > Java & JSP & FW' 카테고리의 다른 글
java :: 자바로 URL 이미지 다운로드 소스 (4) 2013.04.07 java :: request 영역 탐사 (0) 2013.02.20 java :: DOM 파서를 이용한 XML 호출 (재귀호출방식) (0) 2012.10.31 java :: 이메일 체크 정규식 (1) 2012.08.02 struts2 :: 사용자 인터셉터 예제 (2) 2012.04.30