Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- PKCS
- StringUtils
- Java
- String
- 자바 암호화
- JCE
- Executors
- xlet
- 한글조사
- AES
- 암호학
- PKCS#8
- 한글조사처리
- 자바
- sha1
- ACAP
- Log4J
- mac
- Executor
- DAMO
- RSA
- date
- Postman
- IPTV
- 이클립스 플러그인 개발
- ORM
- Freemaker
- Callable
- Instrumentation
- Runnable
Archives
- Today
- Total
오늘은 어디로 갈까...
json-lib 본문
Json 사용하기
json-lib는 beans, maps, collections, java arrays와 XML을 JSON으로 바꾸거나, 반대로 JSON을 bean, DynaBean 형식으로 바꾸는 자바 라이브러리이다.
공식사이트 : http://json-lib.sourceforge.net/
Json-lib을 사용하기 위해서는 아래 라이브러리들이 필요하다.
Json을 Map으로 변환
- JSONObject의 getString(), getJSONArray() 메소드들을 이요해서 하나씩 가져올 수도 있지만, 규칙을 지정해서 이용하면 한번에 변환이 가능하다.
Json2Map
toBean() 메소드를 이용할 경우, 기본값은 DynaBean형태로 변환한지만, 결과 클래스나, List일 경우 그 클래스를 선언해주면 자동 변환한다.
특정 클래스 타입에 따라 출력을 정의하는 방법
json-lib는 beans, maps, collections, java arrays와 XML을 JSON으로 바꾸거나, 반대로 JSON을 bean, DynaBean 형식으로 바꾸는 자바 라이브러리이다.
공식사이트 : http://json-lib.sourceforge.net/
Json-lib을 사용하기 위해서는 아래 라이브러리들이 필요하다.
- jakarta commons-lang 2.3
- jakarta commons-beanutils 1.7.0
- jakarta commons-collections 3.2
- jakarta commons-logging 1.1.1
- ezmorph 1.0.4
Bean이나나 Map을 Json으로 변환하기
Map2Json
Map model = new HashMap();
model.put("key1", "value1");
model.put("key2", new Integer(2));
model.put("key3", Boolean.TRUE);
List dataList = new ArrayList();
Map data = null;
for (int i = 0; i < 10; i++) {
data = new HashMap();
data.put("no", new Integer(i));
data.put("name", "제 이름은 " + i + "입니다.");
data.put("age", new Integer((int)(Math.random() * 60)));
dataList.add(data);
data = null;
}
model.put("dataList", dataList);
JSONObject jsonObject = JSONObject.fromObject(model);
System.out.println(jsonObject);
model.put("key1", "value1");
model.put("key2", new Integer(2));
model.put("key3", Boolean.TRUE);
List dataList = new ArrayList();
Map data = null;
for (int i = 0; i < 10; i++) {
data = new HashMap();
data.put("no", new Integer(i));
data.put("name", "제 이름은 " + i + "입니다.");
data.put("age", new Integer((int)(Math.random() * 60)));
dataList.add(data);
data = null;
}
model.put("dataList", dataList);
JSONObject jsonObject = JSONObject.fromObject(model);
System.out.println(jsonObject);
출력결과
{key1=value1, key3=true, key2=2, dataList=[{age=25, no=0, name=제 이름은 0입니다.}, {age=28, no=1, name=제 이름은 1입니다.}, {age=39, no=2, name=제 이름은 2입니다.}, {age=57, no=3, name=제 이름은 3입니다.}, {age=40, no=4, name=제 이름은 4입니다.}, {age=8, no=5, name=제 이름은 5입니다.}, {age=35, no=6, name=제 이름은 6입니다.}, {age=29, no=7, name=제 이름은 7입니다.}, {age=43, no=8, name=제 이름은 8입니다.}, {age=37, no=9, name=제 이름은 9입니다.}]}
Json을 Map으로 변환
- JSONObject의 getString(), getJSONArray() 메소드들을 이요해서 하나씩 가져올 수도 있지만, 규칙을 지정해서 이용하면 한번에 변환이 가능하다.
Json2Map
String jsonData = "{\"key1\":\"value1\",\"key3\":true,\"key2\":2,\"dataList\":[{\"age\":25,\"no\":0,\"name\":\"제 이름은 0입니다.\"},{\"age\":28,\"no\":1,\"name\":\"제 이름은 1입니다.\"},{\"age\":39,\"no\":2,\"name\":\"제 이름은 2입니다.\"},{\"age\":57,\"no\":3,\"name\":\"제 이름은 3입니다.\"},{\"age\":40,\"no\":4,\"name\":\"제 이름은 4입니다.\"},{\"age\":8,\"no\":5,\"name\":\"제 이름은 5입니다.\"},{\"age\":35,\"no\":6,\"name\":\"제 이름은 6입니다.\"},{\"age\":29,\"no\":7,\"name\":\"제 이름은 7입니다.\"},{\"age\":43,\"no\":8,\"name\":\"제 이름은 8입니다.\"},{\"age\":37,\"no\":9,\"name\":\"제 이름은 9입니다.\"}]}";
Map classMap = new HashMap();
classMap.put("dataList", java.util.HashMap.class);
JSONObject jsonObject = JSONObject.fromObject(jsonData);
Map model = (Map)JSONObject.toBean(jsonObject, java.util.HashMap.class, classMap);
System.out.println(model);
Map classMap = new HashMap();
classMap.put("dataList", java.util.HashMap.class);
JSONObject jsonObject = JSONObject.fromObject(jsonData);
Map model = (Map)JSONObject.toBean(jsonObject, java.util.HashMap.class, classMap);
System.out.println(model);
toBean() 메소드를 이용할 경우, 기본값은 DynaBean형태로 변환한지만, 결과 클래스나, List일 경우 그 클래스를 선언해주면 자동 변환한다.
특정 클래스 타입에 따라 출력을 정의하는 방법
JsonBeanProcessor beanProcessor = new JsDateJsonBeanProcessor();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonBeanProcessor(java.sql.Date.class, beanProcessor);
JsonBeanProcessor을 상속받아 구현한뒤 JsoncCofig에 등록해주면 된다.JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonBeanProcessor(java.sql.Date.class, beanProcessor);