import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
/**
*    일반문자열 유틸.
*
* @author someone
* @version 1.0.0
*/
public class JsonUtil {
    /**
     * 로그 출력.
     */
    @SuppressWarnings("unused")
    private static Logger logger = Logger.getLogger(JsonUtil.class);
    /**
     * Map을 jsonString으로 변환한다.
     *
     * @param map Map<String, Object>.
     * @return String.
     */
    @SuppressWarnings("unchecked")
    public static JSONObject getJsonStringFromMap( Map<String, Object> map ) {
        JSONObject json = new JSONObject();
        for( Map.Entry<String, Object> entry : map.entrySet() ) {
            String key = entry.getKey();
            Object value = entry.getValue();
            json.put(key, value);
        }
        
        return json;
    }
    
    /**
     * List<Map>을 json으로 변환한다.
     *
     * @param list List<Map<String, Object>>.
     * @return JSONArray.
     */
    @SuppressWarnings("unchecked")
    public static JSONArray getJsonArrayFromList( List<Map<String, Object>> list ) {
        JSONArray jsonArray = new JSONArray();
        for( Map<String, Object> map : list ) {
            jsonArray.add( getJsonStringFromMap( map ) );
        }
        
        return jsonArray;
    }
    
    /**
     * List<Map>을 jsonString으로 변환한다.
     *
     * @param list List<Map<String, Object>>.
     * @return String.
     */
    @SuppressWarnings("unchecked")
    public static String getJsonStringFromList( List<Map<String, Object>> list ) {
        JSONArray jsonArray = new JSONArray();
        for( Map<String, Object> map : list ) {
            jsonArray.add( getJsonStringFromMap( map ) );
        }
        
        return jsonArray.toJSONString();
    }
    /**
     * JsonObject를 Map<String, String>으로 변환한다.
     *
     * @param jsonObj JSONObject.
     * @return String.
     */
    @SuppressWarnings("unchecked")
    public static Map<String, Object> getMapFromJsonObject( JSONObject jsonObj ) {
        Map<String, Object> map = null;
        
        try {
            
            map = new ObjectMapper().readValue(jsonObj.toJSONString(), Map.class) ;
            
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return map;
    }
    /**
     * JsonArray를 List<Map<String, String>>으로 변환한다.
     *
     * @param jsonArray JSONArray.
     * @return List<Map<String, Object>>.
     */
    public static List<Map<String, Object>> getListMapFromJsonArray( JSONArray jsonArray ) {
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        
        if( jsonArray != null )
        {
            int jsonSize = jsonArray.size();
            for( int i = 0; i < jsonSize; i++ )
            {
                Map<String, Object> map = JsonUtil.getMapFromJsonObject( ( JSONObject ) jsonArray.get(i) );
                list.add( map );
            }
        }
        
        return list;
    }


'프로그래밍 > JAVA' 카테고리의 다른 글

java 컬렉션 종류  (0) 2019.03.07
RSA암호화 key생성 암호화 복호화  (0) 2019.03.07
RSA암호화 sample  (0) 2019.03.07
날짜관련 util  (0) 2019.03.07
FCM push 보내기  (0) 2019.03.07
/**
* Map을 Vo로 변환
* @param map
* @param obj
* @return
*/
public static Object convertMapToObject(Map<String,Object> map,Object obj){
    String keyAttribute = null;
    String setMethodString = "set";
    String methodString = null;
    Iterator itr = map.keySet().iterator();

    while(itr.hasNext()){
        keyAttribute = (String) itr.next();
        methodString = setMethodString+keyAttribute.substring(0,1).toUpperCase()+keyAttribute.substring(1);
        Method[] methods = obj.getClass().getDeclaredMethods();
        for(int i=0;i<methods.length;i++){
            if(methodString.equals(methods[i].getName())){
                try{
                    methods[i].invoke(obj, map.get(keyAttribute));
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
    return obj;

}


'프로그래밍 > JAVA' 카테고리의 다른 글

날짜관련 util  (0) 2019.03.07
FCM push 보내기  (0) 2019.03.07
VO를 Map으로 변환  (0) 2019.03.07
jsonString to Array 처리  (0) 2019.03.07
Vo 로그출력  (0) 2019.03.07
/**
* Vo를 Map으로 변환
* @param obj
* @return
*/
public static Map convertObjectToMap(Object obj){
    Map map = new HashMap();
    Field[] fields = obj.getClass().getDeclaredFields();
    for(int i=0; i <fields.length; i++){
        fields[i].setAccessible(true);
        try{
            map.put(fields[i].getName(), fields[i].get(obj));
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    return map;

}


'프로그래밍 > JAVA' 카테고리의 다른 글

날짜관련 util  (0) 2019.03.07
FCM push 보내기  (0) 2019.03.07
Map을 VO로 변환  (0) 2019.03.07
jsonString to Array 처리  (0) 2019.03.07
Vo 로그출력  (0) 2019.03.07

+ Recent posts