본문 바로가기

Java

JavaScript와 Java를 이용한 웹어플리케이션에서 JSON을 이용한 통신방법을 보겠습니다

JavaScript와 Java를 이용한 웹어플리케이션에서 JSON을 이용한 통신방법을 보겠습니다.

 

Java언어의 JSON 파서 기능을 하는 패키지는 http://www.json.org/ 에서 다운받으실 수 있습니다. 

저는 그 중 하나인 json-lib 패키지를 다운받아 사용하였으며, 아래의 예제도 json-lib 패키지를 사용하였습니다.

 

아래의 그림은 www.json.org 홈페이지의 일부인데, 빨간색으로 표시된 패키지가 제가 다운받아 사용해보려고

애쓴 녀석들입니다.  제가 사용한 패키지는 Json-lib라고 붉은 색으로 표시되어 있습니다.

 

 

 

 

json-lib 패키지를 사용하시기 위해선 json-lib 패키지가 의존하고 있는 몇 개의 다른 패키지를 다운받아 사용하셔야 합니다.

파일 첨부해 두었으니 받아서 사용하시기 바랍니다.

 

첨부된 파일 중 json-lib-2.3-jdk15.jar가 바로 json-lib 패키지 입니다. 

그럼 이제 아주아주 간단하면서도 유용하게 사용하실 수 있는 예제를 작성하겠습니다.

 

/*  Java 단 소스 */

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

 

public class TestJSON extends HttpServlet{

  ...

  protected void doPost(..., ...) ...{

    JSONObject jsonObj = new JSONObject();

    jsonObj.put("key1", "value1");

    jsonObj.put("key2", "value2");

    jsonObj.put("key3", "value3");

  }

 

  PrintWriter writer = response.getWriter();

  writer.print(jsonObj.toString());

  writer.close();

 

  return;

}

 

불필요한 소스는 모두 빼고 붉은색 글자로 쓰여진 코드만 보시면 됩니다.

JSONObject 객체를 생성하고 그 안에 put(..., ...) 메소드를 사용하여 값을 하나씩 집어 넣습니다.

위의 예제에서 넣은 값을 toString() 메소드를 통하여 String 객체로 변환하면 아래와 같은 값이 됩니다.

{"key1":"value1","key2":"value2","key3":"value3"}

 

만약 값에 배열을 넣고 싶으시다면 JSONArray를 사용하시면 됩니다.

 

JSONArray jsonArray = new JSONArray();

 

jsonArray.element(0, "array1");

jsonArray.element(1, "array2");

 

jsonObj.put("key4", jsonArray);

 

위와 같이 작성하시고 toString()을 통해 출력해보시면

{"key1":"value1","key2":"value2","key3":"value3","key4":["array1","array2"]}

와 같이 출력될 겁니다.

 

그럼 이제 웬만한 값은 모두 client단으로 전달할 수 있을 것 같습니다.

아래의 javascript를 통해 값을 받아 사용하는 방법을 보겠습니다.

 

// Javascript 단 소스.

var retVal = eval("("+xmlhttp.responseText+")");

 

음... 저게 답니다.  JSON이 Javascript 기반이라는 것을 잊지 마세요.

물론 저 소스는 Ajax로 개발된 소스의 일부분입니다만 서버로부터 responseText 를 받아 사용한다는 것이

요점입니다.  이제 받은 데이터를 리터럴은 리터럴대로, 배열은 배열대로 사용하시면 됩니다.

 

참고로 json-lib 패키지는 부족하나마 설명이 조금은 달려있는 API doc.을 배포하였으니

위의 다운로드 사이트에서 찾아보시기 바랍니다(찾으시기에 절대로!절대로! 어렵지 않습니다). 

 

이상으로 허접하나마 간단한 [JSON을 이용한 Java와 javascript의 값 전달]을 보셨습니다.

 


'Java' 카테고리의 다른 글

JDBC 커넥션부문  (0) 2010.04.03
상속과 다형성  (0) 2009.12.27
자꾸 까먹는 3항 연산자.  (0) 2009.12.11
UTF-8로 개발환경을 도배하자.  (0) 2009.12.10
파일업로드 실습  (0) 2009.11.28