Json 을 map 또는 vo객체로 변환하기 위해서는 Jackson라이브러리를 사용해야된다.
pom.xml 에서 아래의 코드를 추가하거나
https://mvnrepository.com/ 메이븐레파지토리 홈페이지에서 jackson 라이브러리를 찾아서 사용해도 된다.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
jackson 라이브러리가 추가됬으면 사용 방법은 간단하다.
Json to Map 이다.
ObjectMapper mapper = new ObjectMapper();
String json = "{ \"test1\" : \"테스트1\" , \"test2\" : \"테스트2\" }";
Map<String, Object> map = new HashMap<String, Object>();
map = mapper.readValue(json, new TypeReference<Map<String, String>>(){});
System.out.println(map.get("test1"));
System.out.println(map.get("test2"));
위와 같이 코드를 작성하면 sysout 으로 찍히는 값은
테스트1
테스트2
가 결과로 나온다.
Map to String 이다. (String 이긴하지만 json String으로 반환된다.)
우선 map을 다시만들어서 넣을수도 있지만.... 게으르니 위의 map을 이용해서 json string 으로 반환되는 예제이다.
ObjectMapper mapper = new ObjectMapper();
String json = "{ \"test1\" : \"테스트1\" , \"test2\" : \"테스트2\" }";
Map<String, Object> map = new HashMap<String, Object>();
map = mapper.readValue(json, new TypeReference<Map<String, String>>(){});
System.out.println(map.get("test1"));
System.out.println(map.get("test2"));
System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(map));
위와 같이 코드를 작성하면 sysout 으로 찍히는 값은
테스트1
테스트2
{ "test1" : "테스트1", "test2" : "테스트2"}
가 결과로 나온다.