Android的JSON解析

jopen 12年前發布 | 15K 次閱讀 Android Android開發 移動開發

    public class JSONParser {

   // 本類是用于解析數據返回的數據用的。  
    // 返回數據的格式都是JSON,但是可以分為2種,一種是key、values的值對,另一種就是值對數組的數據,分別用兩種方法進行解析。  
    // 下面的方法是解析第一種的,傳入參數為服務器返回的數據字符串和由數據key組成的數組,解析后返回值為  
    // HashMap<String , Object>,就是我們需要的值對。  
    public HashMap<String, Object> getJSONParserResult(String JSONString,  
            String[] key) {  
        HashMap<String, Object> hashMap = new HashMap<String, Object>();  
        try {  
            JSONObject result = new JSONObject(JSONString).getJSONObject(  
                    "NewDataSet").getJSONObject("Table");      
                for (int i = 0; i < key.length; i++) {  
                    if (result.has(key[i])) {  
                        hashMap.put(key[i], result.get(key[i]));  
                    }  
                }  
        } catch (JSONException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return hashMap;  
    }  
    // 下面的方法是解析第二種的,傳入參數為服務器返回的數據字符串和由數據key組成的數組,解析后返回值為  
    // ArrayList<HashMap<String , Object>>,就是我們需要的值對數組。  
    public ArrayList<HashMap<String, Object>> getJSONParserResultArray(  
            String JSONString, String[] key) {  
        ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();  
        HashMap<String, Object> hashMap;  
        try {  
            JSONObject result = new JSONObject(JSONString)  
                    .getJSONObject("NewDataSet");  
            JSONArray resultArray = result.getJSONArray("Table");  
            for (int i = 0; i < resultArray.length(); i++) {  
                JSONObject resultTemp = (JSONObject) resultArray.opt(i);  
                hashMap = new HashMap<String, Object>();  
                for (int j = 0; j < key.length; j++) {  
                    if (resultTemp.has(key[j])) {  
                        hashMap.put(key[j], resultTemp.get(key[j]));  
                    }  
                }  
                arrayList.add(hashMap);  
            }  
        } catch (JSONException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return arrayList;  
    }  
}   </pre><br />
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!