db를 조회한 가상의 데이터를 arraylist에 담아주고 해당 리스트로 json object를 만들어보자
서버에서 json object 파싱하여 웹페이지로 전달
ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); JSONObject jsonObj = new JSONObject(); JSONObject jsonSubObj = null; JSONArray jsonArr = new JSONArray(); Map<String, Object> map = null; map = new HashMap<String, Object>(); map.put("data1","데이터1-1"); map.put("data2","데이터1-2"); list.add(map); map = new HashMap<String, Object>(); map.put("data1","데이터2-1"); map.put("data2","데이터2-2"); list.add(map); map = new HashMap<String, Object>(); map.put("data1","데이터3 -1"); map.put("data2","데이터3-2"); list.add(map); for(Map<String,Object> m : list) { Set<String> key = map.keySet(); for (Iterator<String> iterator = key.iterator(); iterator.hasNext();) { String k = (String) iterator.next(); String value = (String) map.get(k); jsonSubObj = new JSONObject(); jsonSubObj.put(k, value); } jsonArr.add(jsonSubObj); } jsonObj.put("list",jsonArr); PrintWriter pw = response.getWriter(); pw.print(jsonObj); pw.flush(); pw.close();
위와 같은 형식으로 데이터를 파싱해서 클라이언트로 json 객체를 던져준다면 다음 화면같이
값이 나올것이다.
만약 클라이언트쪽에서 ajax 호출하고 return type을 json으로 받았다면 object로 받을 수 있는
것이다.
문자열을 json object로 변환하는 작업을 해보도록 하겠다..
클라이언트에서 받은 json 문자열을 object로 변환하기
//서버에서 request.getparameter()로 받은 데이터라 가정 String jsonStr = "{\"obj1\":\"obj-1\",\"obj2\":\"obj-2\",\"obj3\":\"obj-3\"}"; if(jsonStr.substring(0,1).equals("{")) { Object obj=JSONValue.parse(jsonStr); JSONObject j=(JSONObject)obj; System.out.println("===========JSON OBJECT STRING -> OBJECT==========="); System.out.println(j.get("obj1")); System.out.println(j.get("obj2")); System.out.println(j.get("obj3")); } //서버에서 request.getparameter()로 받은 데이터라 가정 String jsonArrayStr = "[{\"data2\":\"데이터3-1\"},{\"data2\":\"데이터3-2\"},{\"data2\":\"데이터3-3\"}]"; if(jsonArrayStr.substring(0,1).equals("[")) { Object obj=JSONValue.parse(jsonArrayStr); JSONArray j=(JSONArray)obj; System.out.println("===========JSON ARRAY STRING -> FOR OBJECT==========="); for(int i=0; i<j.size(); i++) { JSONObject json = (JSONObject)j.get(i); System.out.println(json.get("data2")); } }
서버로 임의의 string형 json object / json array 값을 넘겼다 가정하였을때 json object/array
로 변경한 후 콘솔출력을 해보았다.
잘 뽑아진다 ㅎㅎ
POI 라이브러리를 이용하여 엑셀파일(XLSX) 만들기 - 6만건 이상일 경우 추천 (0) | 2014.07.14 |
---|---|
자바 파일다운로드 - 멀티 브라우저지원 샘플코드 (0) | 2014.06.12 |
엑셀다운 POI 라이브러리 - 엑셀파일에서 내용 읽기 (0) | 2014.06.10 |
게시물 번호 구하기 샘플소스 (0) | 2014.06.09 |
자바 썸네일 이미지 생성 (0) | 2014.06.09 |