I.K.Picture & IT Info.

JSON String을 Map Object로 변환 본문

Development/Java/Android

JSON String을 Map Object로 변환

helpful-intruder 2020. 7. 16. 17:57
반응형

제가 주로 개발에 활용하는 언어는 JAVA이긴한데 개발하면서 되는 Tip(?)들을 너무 안올렸더라구요..

 

그래서 오랜만에 올려봅니다.

 

프로그래밍을 하다보면

 

데이터를 컨트롤 하는 부분이 가장 많이 사용되는거 같습니다.

 

일단 먼저  JSON String 데이터를 자바 Map 객체로 변환하는 겁니다.

 

 

Jackson 라이브러리를 사용하구요.

해당 부분은 배열 형태로 받는 JSON String은 적용되지 않으니.... 반드시! 단일 JSON에 대해서만 적용하세요.

(배열 형태도 조만간 올릴께요 :) )

 

 

import com.fasterxml.jackson.databind.ObjectMapper;


...


    ObjectMapper mapper = new ObjectMapper();
    String json = "{\"name\":\"intruder\", \"phone\":\"01054221111\"}";

    try{
        Map<String, String> map = mapper.readValue(json, Map.class);

    } catch (IOException e){
        e.printStackTrace();
    }

...

 

소스 코드 부분만 작성해놓은 거예요.

 

ObjectMapper를 통해 json String을 객체로 변경할 수 있는 그런 것입니다. 

 

아. 그런데 그럼.. 반대로 ... 변경하는 방법도~~ 알아야겠죠??

 

Map 객체를 JSON String으로 변환하는 방법

 

이 때는 JSONObject 라이브러리를 사용해야합니다.

 


Map<String, String> map = ... ;
//대충 Map 객체가 다음과 같이 정의되어 있고 값이 있다고 가정할께요.

JSONObject jsonObject = new JSONObject();
for( Map.Entry<String, String> entry : map.entrySet()  ){
    String key = entry.getKey();
    Object value = entry.getValue();
    jsonObject.put(key, value);
}

String jsonString = jsonObject.toString();

 

맨 마지막 toString 의 경우 문자열로 변경할 필요가 있다고 생각할 때만 사용하면됩니다. 

 

대부분 데이터 교환 형태가 문자열 아니면 전송이 쉽지 않기 때문에... 전 toString을 많이 쓰게되네요.

 

 

개발하는데 조금이라도 도움이 되셨으면 좋겠네요~ 

반응형
Comments