JSON中的key下划线与驼峰互转
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);
}
}
}