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"));

 

'Java' 카테고리의 다른 글

JVM - java버전별 변경점  (0) 2022.05.24
JVM  (0) 2022.05.24
LocalDateTime to LocalDate 변환  (0) 2021.09.14
unboxing of '*' may produce 'nullpointerexception'  (0) 2021.06.30
jsonObject stackOverFlowError - JPA querydsl booleanExpression  (1) 2021.03.26