• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/81
2014. 7. 4. 00:22
json-simple 라이브러리를 이용한 ObjecToString 과 StringToObject 코드구현


json을 사용하는 대부분의 경우는 

서버에서 클라이언트로 json 또는 배열객체를 전달할때 주로 사용함

하지만 반대로 

웹 페이지에서 json 문자열을 만들어서 클라이언트에서 서버로 보낼 경우도 존재한다

이 두가지 예제를 모두 들어보도록 하겠다.

우선 라이브러리를 받도록 하자 

json-simple-1.1.1.jar



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 

로 변경한 후 콘솔출력을 해보았다.




잘 뽑아진다 ㅎㅎ 


저작자표시 (새창열림)

'샘플소스 > 샘플소스(JAVA)' 카테고리의 다른 글

POI 라이브러리를 이용하여 엑셀파일(XLSX) 만들기 - 6만건 이상일 경우 추천  (0) 2014.07.14
자바 파일다운로드 - 멀티 브라우저지원 샘플코드  (0) 2014.06.12
엑셀다운 POI 라이브러리 - 엑셀파일에서 내용 읽기  (0) 2014.06.10
게시물 번호 구하기 샘플소스  (0) 2014.06.09
자바 썸네일 이미지 생성  (0) 2014.06.09

티스토리툴바