요르딩딩
Map - Json String 변환 본문
728x90
반응형
writeValueAsString( value )
- value: String 타입으로 변환할 대상
readValue( arg, type )
- arg: 지정된 타입으로 변환할 대상
-type: 대상을 어떤 타입으로 변환할것인지 클래스를 명시한다. Class객체, TypeReference객체가 올 수 있다.
mapper.readValue(arg, ArrayList.class);
mapper.readValue(arg, new ArrayList<HashMap<String, String>>().getClass());
mapper.readValue(arg, new TypeReference<ArrayList<HashMap<String, String>>>(){});
1. map 타입이 JSON 형식의 String 타입으로 변환된다. (map -> json)
자바스크립트에 JSON을 넘겨줄 때 유용하다.
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>();
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"}
2. JSON을 맵 타입으로 변환 (json -> map)
import 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}
3. List<map<?, ?>> 타입일 때 이를 JSON으로 변환하는 방법 (LIst<map<?,?>> -> Json)
writeValueAsString, readValue 메서드를 사용하되 타입 명시만 달리한다.
import 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 -> json
ArrayList<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 -> map
String 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}]
728x90
반응형
'[Java]' 카테고리의 다른 글
[JAVA] Coalesce (isNull과 친척관계) (0) | 2021.04.06 |
---|---|
[JAVA Util] ConvertUtils (0) | 2021.04.06 |
[JAVA] 인코더, 디코더 (0) | 2021.04.05 |
String.join(", ", 배열) (0) | 2021.02.24 |
Arrays.asList(배열) (0) | 2021.02.17 |
Comments