Java

JSONObject to Map

기기디 2021. 4. 9. 11:42

개인정리용 

 

java에서 org.json.JSONObject의 JSONObject를 사용하는경우 

public Map<String, Object> toMap(JSONObject object) throws JSONException {
                                                                          
     Map<String, Object> map = new HashMap<String, Object>();             
     Iterator<String> keysItr = object.keys();                            
                                                                          
     while(keysItr.hasNext()) {                                           
         String key = keysItr.next();                                     
         Object value = object.get(key);                                  
         if(value instanceof JSONArray) {                                 
             value = toList((JSONArray) value);                           
         }                                                                
         else if(value instanceof JSONObject) {                           
             value = toMap((JSONObject) value);                           
         }                                                                
         map.put(key, value);                                             
     }                                                                    
                                                                          
     return map;                                                          
                                                                          
 }                                                                        
                                                                          
 public List<Object> toList(JSONArray array) throws JSONException {       
     List<Object> list = new ArrayList<Object>();                         
     for(int i = 0; i < array.length(); i++) {                            
         Object value = array.get(i);                                     
         if(value instanceof JSONArray) {                                 
             value = toList((JSONArray) value);                           
         }                                                                
         else if(value instanceof JSONObject) {                           
             value = toMap((JSONObject) value);                           
         }                                                                
         list.add(value);                                                 
     }                                                                    
                                                                          
     return list;                                                         
                                                                          
 }                                                                        

 

 

 

메소드로 작성. sharedUtil클래스에 선언.

 

Map<String, Object> map = toMap(map.getJSONObject("map"));