[fastjson] - fastjson中 JSONObject 和 JSONArray

/**
     * 对jsonObject对象进行key的获取
     * @param jsonObject
     */

    public ArrayList<String> jsonKeyRecursion(JSONObject jsonObject,ArrayList urlArr){
        //创建urlArr用来存放url路径values
        JSONObject littleJson = null;

        //对jsonObject中的url(key)的value进行更替, 加入授权请求连接
//        String key = null;
        for(String key : jsonObject.keySet()){
            System.out.println("key : "+key);
            //返回新的button下的json串
            littleJson = (JSONObject) jsonObject.get(key);
            System.out.println("littleJson : "+littleJson);

            if(key.equals("url")){
                urlArr.add(littleJson);
                System.out.println("add one littleJson to array : "+littleJson);
            }
        }
        boolean url = littleJson.containsKey("");
        System.out.println("url:"+url);
        //这里的littleJson是JSONArray了,所以传入失败
        jsonKeyRecursion(littleJson,urlArr);


//        Set<String> strings = littleJson.keySet();
////        littleJson
//        System.out.println("strings:"+strings); // 1. button
//        Set<Map.Entry<String, Object>> entries = littleJson.entrySet();
//        Object[] objects = entries.toArray();
//        System.out.println(objects);
//        System.out.println("entries:"+entries); // 1. [button=[{"name":"今日歌曲","sub_button":[],"type":"click","key ...
//        Iterator<Map.Entry<String, Object>> iterator = entries.iterator();
//        if(iterator.hasNext()){
//            System.out.println("iterator.next():"+iterator.next());
//        }

        return urlArr;
    }

并没有获取复杂的嵌套json数据的很好的方法么

待解析

当第一次传入的jsonObject进行了get(key)之后,输出littleJson是去掉微信自定义菜单第一个key值(menu)后的button开头的json集合

但当要 get(button) 获取所剩下的button的集合时,程序提示出错为 JSONArray can't cast type  to JSONObject .

使用强制转换失败,所以需要新的方法,让其(JSONArray)进入再一次迭代遍历中获取key的value,获取key的value直到把他们都装入键值对的map中.

{"menu":{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC","sub_button":[]},{"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER","sub_button":[]},{"name":"菜单","sub_button":[{"type":"view","name":"搜索","url":"http://www.ykmimi.com/","sub_button":[]},{"type":"view","name":"视频","url":"http://www.ykmimi.com/","sub_button":[]},{"type":"click","name":"赞一下我们","key":"V1001_GOOD","sub_button":[]}]}]}}

例如之上的这条json字符串.

 

posted @ 2018-12-07 12:18  ukyo--BlackJesus  阅读(1836)  评论(0编辑  收藏  举报