我得到了5MB的JSON響應,我正在使用1024字節的字節數組下載並保存在StringBuffer中。解析Android中的5MB JSON響應時出現內存不足異常
爲了解析這個響應,我必須創建一個帶參數的JSONObject作爲String。在將響應轉換爲字符串時,我得到一個out of memory exception(stringBufferVar.toString()).
從服務我將得到以下響應作爲最大5個附件,每個最大5MB數據Base64編碼。
以下是服務響應。
{"result":[{"attachment":{"name":"one.doc", "type":"document", "data":"base64 encoded data max of 5MB"}, {"attachment":{"name":"two.txt", "type":"text", "data":"base64 encoded data max of 5MB"} }] }
我將在列表中顯示附件,當用戶單擊一個項目時我必須將該附件保存在SDCard中。爲此,我如何解析並保存JSON中的大量數據。
請提供任何解決方案。
在此先感謝。
感謝您的回覆。 我的應用程序構建目標2.3.1(API級別9)。 此外,我嘗試與gson解析器仍然是我得到的相同的OutOfMemory。 InputStream is = helper.postData(url,parameters); InputStreamReader ipReader = new InputStreamReader(is); Gson gson = new Gson(); Gson gson = new Gson(); Gson gson = new Gson(); AttachmentDO attachmentResp = gson.fromJson(ipReader,AttachmentDO.class); com.google.gson.Gson.fromJson(Gson.java:694) - java.lang.OutOfMemoryError – Santhosh 2012-03-12 06:07:56
您需要使用基於流的解析器。我認爲gson有這種能力,但不是你使用它的方式 – njzk2 2012-03-12 09:42:00