JSONツール類、操作JSONタイプデータ

1873 ワード

public static JSONObject parseJson(String json){
		return JSON.parseObject(json);
	}
	
	public static Map<String,Object> toMapFromJsonString(String json){
		return JsonUtils.toMap(JsonUtils.parseJson(json));
	}
	
	/**
	 *  JSONObjec     Map-List  
	 * @param json
	 * @return
	 */
	public static Map<String, Object> toMap(JSONObject json){
	    Map<String, Object> map = new HashMap<String, Object>();
	    Set<Entry<String, Object>> entrySet = json.entrySet();
	    for (Iterator<Entry<String, Object>> iter = entrySet.iterator(); iter.hasNext(); ){
	    	Entry<String, Object> entry = iter.next();
	    	String key = entry.getKey();
	    	Object value = entry.getValue();//value
	        if(value instanceof JSONArray)
	            map.put((String) key, toList((JSONArray) value));
	        else if(value instanceof JSONObject)
	            map.put((String) key, toMap((JSONObject) value));
	        else
	            map.put((String) key, value);
	    }
	    return map;
	}

	/**
	 *  JSONArray     List  
	 * @param json
	 * @return
	 */
	public static List<Object> toList(JSONArray json){
	    List<Object> list = new ArrayList<Object>();
	    for (int i=0; i<json.size(); i++){
	    	Object value = json.get(i);
	    	if(value instanceof JSONArray){
	            list.add(toList((JSONArray) value));
	    	}
	        else if(value instanceof JSONObject){
	            list.add(toMap((JSONObject) value));
	        }
	        else{
	            list.add(value);
	        }
	    }
	    return list;
	}