-
자바 ObjectMapperJava(자바) 2015. 5. 7. 19:29반응형
라이브러리 다운로드
http://wiki.fasterxml.com/JacksonDownload
Map - JSON 변환
ObjectMapper.readValue( arg, type )
- arg: 변환대상
- type: 대상을 어떤 타입으로 변환할것인지 명시한다. JavaClass 혹은 Class객체, TypeReference객체가 올 수 있다.
ex)
mapper.readValue(arg, ArrayList.class);
mapper.readValue(arg, new ArrayList<HashMap<String, String>>().getClass())
mapper.readValue(arg, new TypeReference<ArrayList<HashMap<String, String>>>(){})
● Map
12345678910111213141516171819import com.fasterxml.jackson.databind.ObjectMapper;public class Test2 {public static void main(String[] args) throws Exception {ObjectMapper mapper = new ObjectMapper();HashMap<String, String> map = new HashMap<String, String>();map.put("name", "steave");map.put("age", "32");map.put("job", "baker");System.out.println(map);System.out.println(mapper.writeValueAsString(map));}}// {age=32, name=steave, job=baker}// {"age":"32","name":"steave","job":"baker"}cs 맵형태의 값이 JSON 타입으로 변환된다. 자바스크립트에 JSON타입으로 넘겨줄 때 유용하다.
이와 반대로 JSON타입의 값을 맵 형태로 변환하려면 다음처럼 작성한다:
12345678910111213141516171819import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;public class Test2 {public static void main(String[] args) throws Exception {ObjectMapper mapper = new ObjectMapper();HashMap<String, String> map = new HashMap<String, String>();String jsn = "{\"age\":\"32\",\"name\":\"steave\",\"job\":\"baker\"}";map = mapper.readValue(jsn,new TypeReference<HashMap<String, String>>() {});System.out.println(map);}}// {name=steave, age=32, job=baker}cs ● List<Map>
view에 전달할 model이 List<map<?, ?>> 타입일 때 이를 JSON으로 변환하는 방법을 알아보자.
사용방법은 크게 다르지 않고 writeValueAsString, readValue 메서드를 사용하되 타입 명시만 달리한다.
12345678910111213141516171819202122232425262728293031323334353637383940import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;public class Test2 {public static void main(String[] args) throws Exception {ObjectMapper mapper = new ObjectMapper();// map -> jsonArrayList<HashMap<String, String>> list= new ArrayList<HashMap<String,String>>();HashMap<String, String> map = new HashMap<String, String>();map.put("name", "steave");map.put("age", "32");map.put("job", "baker");list.add(map);map = new HashMap<String, String>();map.put("name", "matt");map.put("age", "25");map.put("job", "soldier");list.add(map);System.out.println(mapper.writeValueAsString(list));// json -> mapString jsn = "[{\"age\":\"32\",\"name\":\"steave\",\"job\":\"baker\"},"+ "{\"age\":\"25\",\"name\":\"matt\",\"job\":\"soldier\"}]";list = mapper.readValue(jsn,new TypeReference<ArrayList<HashMap<String, String>>>() {});System.out.println(list);}}// [{"age":"32","name":"steave","job":"baker"},{"age":"25","name":"matt","job":"soldier"}]// [{name=steave, age=32, job=baker}, {name=matt, age=25, job=soldier}]반응형'Java(자바)' 카테고리의 다른 글
자바 상속 규칙(피터 코드) (0) 2015.08.08 자바 HttpSessionListener 정리 (2) 2015.07.07 이클립스 단축키 모음! (0) 2015.04.10 자바 Statement 와 PreparedStatement의 차이점 (0) 2015.01.15 자바 StringTokenizer !! (0) 2014.09.26