JSONレスポンスが5MBになりました。1024バイトサイズのバイト配列を使用してStringBufferにダウンロードして保存しています。Androidで5MB JSONレスポンスを解析中に例外が発生しました
このレスポンスを解析するには、パラメータとしてStringを指定してJSONObjectを作成する必要があります。応答を文字列に変換する際に、out of memory exception(stringBufferVar.toString()).
サービスから、Base64でエンコードされた最大5MBのデータを最大5つの添付ファイルとして、以下の応答が得られます。
サービスからの応答は次のとおりです。
{"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 =新しいInputStreamReader(あり); \t \t \t Gson gson = new Gson(); AttachmentDO attachmentResp = gson.fromJson(ipReader、AttachmentDO.class); com.google.gson.Gson.fromJson(Gson.java:694) - java.lang.OutOfMemoryError – Santhosh
ストリームベースのパーサーを使用する必要があります。私はgsonがこの機能を持っていると思うが、あなたがそれを使う方法ではない – njzk2