/** * json大寫轉小寫 * * @return JSONObject */ public static JSONObject transToLowerObject(String json) { JSONObject JSONObject2 = new JSONObject(); JSONObject JSONObject1 = JSON.parseObject(json); for (String key : JSONObject1.keySet()){ Object object = JSONObject1.get(key); if (object.getClass().toString().endsWith("JSONObject")) { JSONObject2.put(key.toLowerCase(), transToLowerObject(object.toString())); } else if (object.getClass().toString().endsWith("JSONArray")) { JSONObject2.put(key.toLowerCase(), transToArray(JSONObject1.getJSONArray(key).toString())); }else{ JSONObject2.put(key.toLowerCase(), object); } } return JSONObject2; } /** * jsonArray轉jsonArray * * @return JSONArray */ public static JSONArray transToArray(String jsonArray) { JSONArray jSONArray2 = new JSONArray(); JSONArray jSONArray1 = JSON.parseArray(jsonArray); for (int i = 0; i < jSONArray1.size(); i++) { Object jArray = jSONArray1.getJSONObject(i); if (jArray.getClass().toString().endsWith("JSONObject")) { jSONArray2.add(transToLowerObject( jArray.toString())); } else if (jArray.getClass().toString().endsWith("JSONArray")) { jSONArray2.add(transToArray(jArray.toString())); } } return jSONArray2; }
這是遞歸方法,JSONArray用下面的方法,JSONObject用上面的方法json
還有這種方案app
/** * json的Key值轉化爲小寫 * @param json * @return */ public static String transformLowerCase(String json){ String regex = "[\\\"' ]*[^:\\\"' ]*[\\\"' ]*:";// (\{|\,)[a-zA-Z0-9_]+: Pattern pattern = Pattern.compile(regex); StringBuffer sb = new StringBuffer(); // 方法二:正則替換 Matcher m = pattern.matcher(json); while (m.find()) { m.appendReplacement(sb, m.group().toLowerCase()); } m.appendTail(sb); return sb.toString(); }
也能夠試試哦哦。spa