基于hutool实现JSONObject首字母驼峰大小写转换方法

时间:2025-02-16 07:17:26
/** * 转换为驼峰格式/转换为下划线方式 * * @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; }