본문 바로가기
Language/Java

[JAVA] List JSON 변환(Convert) /Jackson Lib 사용

by 나비와꽃기린 2016. 7. 7.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

List JSON 변환/Jackson Lib 사용

 

(1) List DATA

-  List list = birthdayDao.selectGetBirthdaydList(map);

-  list 결과

[{INDN=20000000, ORG_NM=Consumer Insurance, PSN_NAME=홍길동, PZC_NM=null}]

 

(2) JSON DATA 로 변환

-변환방법

-  (1) Jackson LIB import !

-필자가 사용한 Jackson Lib

import org.codehaus.jackson.map.ObjectMapper;

 

/* Location: WEB-INF\lib\jackson-mapper-asl-1.9.13.jar

 * Qualified Name: org.codehaus.jackson.map.ObjectMapper

 * Java Class Version: 5 (49.0)

 * JD-Core Version:    0.7.1

 */


******* 아 한참고생했다.....

jackson-mapper-asl 라이브러리만 import 한다면

IDE에서 writeValueAsString();  사용시


incompatible types
     required:java.lang.Throwable
     found :org.codehaus.jackson.map.JsonMappingException

IDE에서 다음과 같은 에러가 난다.

catch 로 잡아도 안되, Throwable 해도 안되, 

다른 json lib 써보려고 바꿔보고 난리를 치다 해결방법을 알아냈다.



jackson-mapper-asl 뿐만아니라 jackson-core-asl 까지 import 해줘야 한다는 것 (!!!)

해결방법은 아래 링크에서 찾음!

***************************
import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;


ObjectMapper mapper = new ObjectMapper();
String jsonList="";

try {
	jsonList = mapper.writeValueAsString(list);
} catch (IOException e) {
	e.printStackTrace();
}


josnList결과


[{"INDN":"20000000","ORG_NM":"Consumer Insurance"

,"PSN_NAME":"홍길동","PZC_NM":null}]

 

 

 

PS) 

-결과값을 Mapput

Map result = new HashMap();

 

result.put(“items”, jsonList);

result.put(“code", "200");

result.put("channel_name", “Consumer Insurance”);

 

 

-결과

{channel_name=Consumer Insurance,

 items=[{"INDN":"20000000","ORG_NM":"Consumer Insurance","PSN_NAME":"홍길동","PZC_NM":null}],

 code=200}