首页 java实战 遍历获取JSONObject的所有Key

遍历获取JSONObject的所有Key

需要设置正常的json格式   net.sf.json  包 public static void main(…

需要设置正常的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;
    }

 

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

mysql 统计日期 今天,昨天,上个月,这个月 ,一年

mysql 统计日期 今天,昨天,上个月,这个月 ,一年

查询5分钟前的数据 select * from table where end_date between date_ad...
Illegal key size or default parameters

Illegal key size or default parameters

简介: java中使用AES对称加密后,请求报错: Caused by: java.lang.RuntimeExcept...
nginx跨域问题

nginx跨域问题

add_header Access-Control-Allow-Origin *; add_header Access-...
Ajax请求发送成功但不进success的解决方法

Ajax请求发送成功但不进success的解决方法

dataType:’Text’ 格式严格按照服务端返回的数据来
【java】post请求参数全大写后台接不到参数

【java】post请求参数全大写后台接不到参数

测试验证的时候发现,接收不到请求参数   驼峰正常 springMVC使用的是Jackson来解析json格式的请求报文...
返回顶部