使用json解析字串

來源:互聯網
上載者:User

使用json解析字串
以下是兩端看起來略顯複雜的json字串數組。當然了,這兩個數組裡的內容很長,但格式都是一樣的。數組一、citySchools={ "530"\: [["1", "530", "\u5317\u4EAC\u5927\u5B66"], ["2", "530", "\u4E2D\u56FD\u4EBA\u6C11\u5927\u5B66"], ["3", "530", "\u6E05\u534E\u5927\u5B66"], ["4", "530", "\u5317\u4EAC\u4EA4\u901A\u5927\u5B66"], ["5", "530", "\u5317\u4EAC\u79D1\u6280\u5927\u5B66"], ["6", "530", "\u4E2D\u56FD\u77F3\u6CB9\u5927\u5B66\uFF08\u5317\u4EAC\uFF09"]}數組二、major={ "1"\: [["101", "1", "\u7535\u529B\u7CFB\u7EDF\u53CA\u81EA\u52A8\u5316"], ["102", "1", "\u7535\u6C14\u5DE5\u7A0B\u53CA\u5176\u81EA\u52A8\u5316"], ["103", "1", "\u7535\u5B50\u4FE1\u606F\u5DE5\u7A0B"], ["104", "1", "\u8BA1\u7B97\u673A\u79D1\u5B66\u4E0E\u6280\u672F"]}。想了半天寫出了下面的兩個方法,大家可以參考一下。當然了,我也知道方法寫的很醜,希望大手可以給出更好的建議。 

        /**             * 代碼寫的太醜,不要怨哥,要怨就怨領導催的太緊,CTMD     * 擷取城市對應的字串     * @param u     * @return     */    public static String getSchoolValue(User u){        String allCitySchools = p.getProperty("citySchools");        JSONObject jo = JSONObject.fromObject(allCitySchools);        Iterator it = jo.entrySet().iterator();        //擷取每個城市下對應的學校列表        while(it.hasNext()){            Entry entry = (Entry) it.next();            JSONArray jsonArray =  (JSONArray) entry.getValue();            //擷取每一個學校的對象(schoolkey,cityKey,schoolValue)            for(int i = 0;i<jsonArray.size();i++){                JSONArray jsonArraySon = (JSONArray) jsonArray.get(i);                //用schoolkey與使用者的schoolkey比較,如果相等,擷取對應的schoolValue                for(int j = 0;j<jsonArraySon.size();j++){                    if(Integer.parseInt((String)jsonArraySon.get(0)) == u.getSchool()){                        return (String)jsonArraySon.get(2);                    }                }            }        }        return null;    }    /**     *擷取專業對應的字串     */    public static String getMajorValue(User u) {        String allMajors = p.getProperty("major");        JSONObject jo = JSONObject.fromObject(allMajors);        Iterator it = jo.entrySet().iterator();        //擷取大方向下對應的專業列表        while(it.hasNext()){            Entry entry = (Entry) it.next();            JSONArray jsonArray =  (JSONArray) entry.getValue();            //擷取每一個專業的對象(majorkey,parentKey,majorValue)            for(int i = 0;i<jsonArray.size();i++){                JSONArray jsonArraySon = (JSONArray) jsonArray.get(i);                //用majorkey與使用者的majorkey比較,如果相等,擷取對應的majorValue                for(int j = 0;j<jsonArraySon.size();j++){                    if(Integer.parseInt((String)jsonArraySon.get(0)) == u.getMajor()){                        return (String)jsonArraySon.get(2);                    }                }            }        }        return null;    }

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.