public static JSONObject formatKey(final JSONObject json, boolean upper) {
JSONObject real = new JSONObject();
for (String it : json.keySet()) {
Object objR = json.get(it);
String key = it.contains("_") ? StrUtil.toCamelCase(it) : StrUtil.toUnderlineCase(it);
key = upper ? StrUtil.upperFirst(key) : StrUtil.lowerFirst(key);
if (objR instanceof String) {
real.put(key, objR);
}
if (objR instanceof JSONObject) {
real.put(key, formatKey((JSONObject) objR, upper));
}
if (objR instanceof JSONArray) {
JSONArray jsonA = new JSONArray();
for (Object objA : (JSONArray) objR) {
jsonA.add(formatKey((JSONObject) objA, upper));
}
real.put(key, jsonA);
}
}
return real;
}