JSON中的key下划线与驼峰互转

时间:2025-02-16 07:31:40
public static void humpToUnderline(Object data) { if (data instanceof JSONArray) { JSONArray arr = (JSONArray) data; for (Object obj : arr) { humpToUnderline(obj); } } else if (data instanceof JSONObject) { JSONObject json = (JSONObject) data; Set<String> keys = json.keySet(); String[] arr = keys.toArray(new String[keys.size()]); for (String key : arr) { Object value = json.get(key); String[] key_arr = key.split(""); if (key_arr.length > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < key_arr.length; i++) { String str = key_arr[i]; if (!"".equals(str)) { if (i == 0) { sb.append(str); } else { int c = str.charAt(0); if (c >= 65 && c <= 90) { int v = c + 32; sb.append("_"); sb.append((char) v); if (str.length() > 1) { sb.append(str.substring(1)); } } else { sb.append(str); } } } } json.remove(key); json.put(sb.toString(), value); } humpToUnderline(value); } } }