基于hutool实现JSONObject首字母驼峰大小写转换方法
/**
* 转换为驼峰格式/转换为下划线方式
*
* @param json 等待转换的方法
* @param upper 首字母大写或者小写
* @return 转换后的
*/
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;
}