private static Set<?> toSet(JSONArray json) throws Exception {
        Set<Object> set = null;
        log.debug(String.format("method start JSONArray[json:%s]", json));
        if (json != null) {   
            set = new HashSet<Object>(json.size());
            Object value;
            for (int i = 0, size = json.size(); i < size; i++) {
                value = json.get(i);
                if (value instanceof JSONObject) {
                    value = toMap((JSONObject)value, null);
                } else if (value instanceof JSONArray) {
                    value = toSet((JSONArray)value);
                }
                set.add(getValue(value));
            }
            json.clear();
        }
        log.debug(String.format("method stop return:Set[%s]", set));
        return set;
    }