[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字符串.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM