1 package com.ytd.ebos.platform.util; 2 3 import java.util.Iterator; 4 5 import net.sf.json.JSONArray; 6 import net.sf.json.JSONObject; 7 8 /** 9 * @author Administrator 10 * JSONObject中 键值对 的值 有三种类型 11 * 1,String 12 * 2,JSONObject 13 * 3,JSONArray 14 * 如果是 String,直接累积val值 15 * 如果是 JSONObject,回调第一步,直接累积val值 16 * 如果是 JSONArray,遍历每个JSONObject然后 回调第一步,直接累积val值累积val值 17 */ 18 public class JSONtoLowerTools { 19 20 /** 21 * @param o1 22 * @return 输入o1 输出o2,相当于复制了01,只是把所有key值,改为成了小写 23 */ 24 public static JSONObject transObject(JSONObject o1) { 25 JSONObject o2 = new JSONObject(); 26 Iterator it = o1.keys(); 27 while (it.hasNext()) { 28 //取得key值 29 String key = (String) it.next(); 30 //根据key值,取得对应value值 31 Object object = o1.get(key); 32 //根据value值的类型,调用不同的方法 33 if (object.getClass().toString().endsWith("String")) { 34 o2.accumulate(key.toLowerCase(), object); 35 } else if (object.getClass().toString().endsWith("JSONObject")) { 36 o2.accumulate(key.toLowerCase(), JSONtoLowerTools.transObject((JSONObject) object)); 37 } else if (object.getClass().toString().endsWith("JSONArray")) { 38 //JSONArray arr = o1.getJSONArray(key); 39 JSONArray arr = (JSONArray)object; 40 o2.accumulate(key.toLowerCase(), JSONtoLowerTools.transArray(arr)); 41 } 42 } 43 return o2; 44 } 45 46 public static JSONArray transArray(JSONArray o1) { 47 JSONArray o2 = new JSONArray(); 48 for (int i = 0; i < o1.size(); i++) { 49 Object jArray = o1.getJSONObject(i); 50 if (jArray.getClass().toString().endsWith("JSONObject")) { 51 o2.add(JSONtoLowerTools.transObject((JSONObject) jArray)); 52 } else if (jArray.getClass().toString().endsWith("JSONArray")) { 53 o2 = JSONtoLowerTools.transArray((JSONArray) jArray); 54 } 55 } 56 return o2; 57 } 58 59 public static void main(String[] args) { 60 JSONObject jsonObject = new JSONObject(); 61 //添加String 62 jsonObject.put("ONE", "first"); 63 64 JSONObject jo0 = new JSONObject(); 65 jo0.put("JO0ONE", "first"); 66 jo0.put("JO0TWO", "second"); 67 //添加JSONObject 68 jsonObject.put("TWO", jo0); 69 70 JSONObject jo1 = new JSONObject(); 71 JSONObject jo2 = new JSONObject(); 72 jo1.put("JO1ONE", "first"); 73 jo1.put("JO1TWO", "second"); 74 jo2.put("JO2ONE", "first"); 75 jo2.put("JO2TWO", "second"); 76 JSONArray jSONArray = new JSONArray(); 77 jSONArray.add(jo1); 78 jSONArray.add(jo2); 79 //添加JSONArray 80 jsonObject.put("THREE", jSONArray); 81 82 //输出 83 System.out.println("before ----- jsonObject: " + jsonObject.toString()); 84 //调用测试 85 System.out.println("after ----- jsonObject: " + transObject(jsonObject).toString()); 86 } 87 }