*/
@SuppressWarnings("unchecked")
protected static Object convertValue(Object val) throws JSONException {
if (val.getClass().isArray()) {
Object[] vals = (Object[]) val;
JSONArray array = new JSONArray();
for (Object arrayVal : vals) {
Object converted = convertValue(arrayVal);
array.put(converted == null ? arrayVal : converted);
}
return array;
} else if (val instanceof Collection) {
JSONArray array = new JSONArray();
for (Object arrayVal : (Collection<?>) val) {
Object converted = convertValue(arrayVal);
array.put(converted == null ? arrayVal : converted);
}
return array;
} else if (val instanceof Map) {
Map<?, ?> valMap = (Map<?, ?>) val;
JSONObject obj = new JSONObject();