JAVA

JAVA : JSON String을 Map으로 Map을 JSON String으로 바꾸기

스노위13 2023. 1. 4. 22:20

pom.xml에 jackson을 추가한다. 

아래 링크에서 원하는 버전의 라이브러리를 받을 수 있다. 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind

나는 2.13.1을 선택했는데 뭐 하든 상관 없을듯?
아래와 같이 추가하면 된다. 

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.1</version>
</dependency>

이제 이걸 활용해서 JSON을 Map으로 Map을 JSON String으로 바꿔보자

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Maptojson {
	public void MaptoJson() throws IOException {
    
            HashMap<String, Object> resultMap = new HashMap<String, Object>();	
            resultMap.put("키", "값");
            resultMap.put("이름", "박땡땡");
            resultMap.put("아이디", "codewos");


            //Map to JSONString : Map을 JSONString으로 바꿔보자

            ObjectMapper mapper = new ObjectMapper();
            String jsonData = mapper.writeValueAsString(resultMap);

            //결과
            //jsonData = {"키" : "값", "이름" : "박땡땡", "아이디" : "codewos"}
            
            
            
            /*JSONString to Map : 위에서 만든 jsonData를 다시 Map으로 바꾸자*/

            HashMap<String, Object> tempMap = new HashMap<>();
            tempMap = mapper.readValue(jsonData, new TypeReference<HashMap<String, Object>>() {});

            // 결과
            //tempMap = {키=값, 이름=박땡땡, 아이디=codewos}
	}
}