Java - net.sf.json之修改JSONObject 中的key值,全部变为小写

 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 }

 

 

posted @ 2020-04-30 09:28  爱跳舞的程序员  阅读(2082)  评论(0编辑  收藏  举报