package com.taxbureau.tax.util;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class JsonUtils {
/**
* 对JSONObject的所有首字母key转为小写
*
* @param jsonString
* @return
*/
public static JsonObject convertKeysToLowerCase(String jsonString) {
JsonElement jsonElement = JsonParser.parseString(jsonString);
return convertKeysToLowerCase(jsonElement.getAsJsonObject());
}
private static JsonObject convertKeysToLowerCase(JsonObject jsonObject) {
JsonObject newJsonObject = new JsonObject();
for (String key : jsonObject.keySet()) {
String newKey = key.substring(0, 1).toLowerCase() + key.substring(1);
JsonElement value = jsonObject.get(key);
if (value.isJsonObject()) {
value = convertKeysToLowerCase(value.getAsJsonObject());
newJsonObject.add(newKey, value);
}else if(value.isJsonArray()) {
JsonArray jsonArray = value.getAsJsonArray();
JsonArray newArray = new JsonArray();
for(int i=0;i<jsonArray.size();i++) {
value = convertKeysToLowerCase(jsonArray.get(i).getAsJsonObject());
newArray.add(value);
}
newJsonObject.add(newKey, newArray);
}else {
newJsonObject.add(newKey, value);
}
}
return newJsonObject;
}
}
测试代码
public static void main(String[] args) {
String s = "";
com.google.gson.JsonObject res = null;
try {
res = JsonUtils.convertKeysToLowerCase(s);
System.out.println(res);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}