티스토리 뷰

반응형

API 서버나 데이터를 가공해야 할 경우 JSONObject()를 Map(String, String) 형식으로 형변환을 해야할 경우가 종종 있습니다. 매번 Class에 생성하기 보다는 Util 형식으로 만들어 쓰시면 편할거 같습니다.

 

JSONObject 형식을 Map<String, String>형식으로 형변환 방법.

 

/**
 * @param JSONObject
 * @apiNote JSONObject를 Map<String, String> 형식으로 변환처리.
 * @return Map<String,String>
 * **/
public static Map<String, Object> getMapFromJsonObject(JSONObject jsonObj){
    Map<String, Object> map = null;
    
    try {
       map = new ObjectMapper().readValue(jsonObj.toString(), Map.class);
    } catch (JsonParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JsonMappingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return map;
}

반대로 Map<String, Object>형의 데이터를 JSONObject() 형식으로 형변환을 진행할 경우도 있습니다.(의외로 자주 쓰이더라구요....)

Map 형식의 데이터를 JSONObject 형식으로 형변환 방법.

/**
 * @param Map<String, Object>
 * @apiNote Map<String, Object>를 JSONObject로 변환처리.
 * @return JSONObject
 * **/
public JSONObject convertMapToJson(Map<String, Object> map) {
    
    JSONObject json = new JSONObject();
    String key = "";
    Object value = null;
    for(Map.Entry<String, Object> entry : map.entrySet()) {
        key = entry.getKey();
        value = entry.getValue();
        json.put(key, value);
    }
    return json;
}
반응형
댓글
공지사항