요르딩딩

Map - Json String 변환 본문

[Java]

Map - Json String 변환

요르딩딩 2021. 4. 6. 10:17
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}]

engaspect.tistory.com/27

 

Spring에서 Json 정리

Map - JSON간 변환 writeValueAsString() writeValueAsString( value ) value: String 타입으로 변환할 대상 readValue() readValue( arg, type ) arg: 지정된 타입으로 변환할 대상 type: 대상을 어떤 타입으로..

engaspect.tistory.com

 

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