需要设置正常的json格式
net.sf.json 包
public static void main(String[] args) { JSONObject jsonObject = JSONObject.fromObject(json); //方法一:重新解析jsonObject中的key,转换为小写的key jsonObject = transToLowerObject(jsonObject); System.out.println(jsonObject); 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); String msg = sb.toString(); System.out.println(msg); } /** * json大写转小写 * * @param jSONArray1 jSONArray1 * @return JSONObject */ public static JSONObject transToLowerObject(JSONObject jSONArray1) { JSONObject jSONArray2 = new JSONObject(); Iterator it = jSONArray1.keys(); while (it.hasNext()) { String key = (String) it.next(); Object object = jSONArray1.get(key); if (object.getClass().toString().endsWith("String")) { jSONArray2.accumulate(key.toLowerCase(), object); } else if (object.getClass().toString().endsWith("JSONObject")) { jSONArray2.accumulate(key.toLowerCase(), transToLowerObject((JSONObject) object)); } else if (object.getClass().toString().endsWith("JSONArray")) { jSONArray2.accumulate(key.toLowerCase(), transToArray(jSONArray1.getJSONArray(key))); } } return jSONArray2; } /** * jsonArray转jsonArray * * @param jSONArray1 jSONArray1 * @return JSONArray */ public static JSONArray transToArray(JSONArray jSONArray1) { JSONArray jSONArray2 = new JSONArray(); for (int i = 0; i < jSONArray1.size(); i++) { Object jArray = jSONArray1.getJSONObject(i); if (jArray.getClass().toString().endsWith("JSONObject")) { jSONArray2.add(transToLowerObject((JSONObject) jArray)); } else if (jArray.getClass().toString().endsWith("JSONArray")) { jSONArray2.add(transToArray((JSONArray) jArray)); } } return jSONArray2; }