• json中key大小写转换


    最近工作中遇到json格式的字符串中的key为大写的,需要转换成小写的来解析,开始想使用正则来替换,结果不是很方便,后来考虑把JSONObject重新来封装。

    如下json格式:{PWACHECKINFO:{QMART:”TEST”,NTNUM:”50”,ECRULE1:”测试中1”,ECRULE2:”,ECRULE3:”,ECRULE4:”,ECRULE5:”,ECRULE6:”,”}

     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;
        }

    转换后的格式如:

    :{“qmart”:”TEST”,”ntnum”:”50”,”ecrule1”:”测试中1”,”ecrule2”:”“,”ecrule3”:”“,}

  • 相关阅读:
    I4-6 Sports and Extreme Sports Teacher:Lamb
    English trip V2-B 24 Biographies Teacher: TAALAN
    git设置下载代理 http or socket5 设置方法
    The "Go" Learning Trip -- 0. Base build
    English trip V2-B 23 Making a Good Impression Teacher: GABRIELE
    English trip V2-B 22 Tell a Story Teacher: Russell
    English trip V2-B 21 Personal History Teacher: Russell
    English trip EM2- PE 5A COMMUNICATION 交流 Teacher:Corrine
    Phonics 自然拼读法 ou ow oi oy au aw oo oo ea Teacher:Lamb
    beta分布 java代码
  • 原文地址:https://www.cnblogs.com/whc321/p/7206029.html
Copyright © 2020-2023  润新知