본문 바로가기

Language/Java / JSP

[Java] json 쉽게 만들기

반응형

예전에 나는 업무 특성상 xml, json 과 같은 형식으로 api 개발을 많이 진행한적이 있다.

asp, jsp 언어 가리지 않고 참 열심히 개발했던거 같다.


나는 xml 형식보다는 json 형식을 선호하는 편인데, 대외적으로는 사이즈가 작아서 가볍다라고 하지만

속내는.. 쉽기 때문이다. 개발이 쉬워서 !!


물론 개발이 쉽다는건.. java/jsp 이야기이다. asp로 json을 개발할때는 지옥중의 지옥이었다.

한줄한줄 response.write 를 찍어가면서 개발했었는데, 구조가 복잡하면 복잡할수록 지옥을 경험 ㅡ_ㅡ


asp도 찾아보면 json으로 변환해주는 컴포넌트가 있을듯 싶은데, asp 컴포넌트들은 유료가 많고,

당시 프로젝트에서 꼭 필요한 컴포넌트가 아니면 사용하지 말라는 지침도 있어서 ...



여튼 asp는 그러하고, Java/Jsp는 Json을 참 쉽게 생성해주는 라이브러리가 있다.

이름하여 Jackson Json.


jackson-all-1.9.11.jar



* Jackson Json 사이트 : http://jackson.codehaus.org/


해당 라이브러리를 사용하여 json을 생성하는게 얼마나 쉬운지는. 아래 코드를 보면 알 수 있다.


	HashMap map = new HashMap() ;
	map.put("name", "test");
	map.put("code", 1001);

	StringBuffer sbuf = new StringBuffer();
	ObjectMapper om = new ObjectMapper(); 
	
	try {
		sbuf.append(om.writeValueAsString(map));
	} catch (JsonGenerationException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (JsonMappingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	sbuf = null ;

	System.out.println(sbuf.toString());




생성하고자 하는 데이터를 Map 형식에 담아서 넣어주기만 하면 된다.

Map 형식에는 String, Integer, Collection 구분없이 아무거나 넣어도 된다.


Collection을 넣을수 있다는 것은 value 값으로 List, Map 등을 넣을 수 있기에 하위 노드의 구성이 용이해 진다.


데이터의 양이 많고 노드의 구성이 복잡해도 개발자는 Map 구조로만 작업을 진행하면 되므로, 개발이 한결 쉬워진다.



jsp에서도 out.println으로 json을 작성할 사람이 있다면 해당 라이브러리를 사용하는것을 추천한다.