【发布时间】:2012-03-21 06:21:37
【问题描述】:
我正在从公共数据库 URI http://data.seattle.gov/api/views/3k2p-39jp/rows.json 导入 JSON 数据,行数达到 445454。使用以下代码,我正在构建整个数据的 JSON 对象。
HttpGet get = new HttpGet(uri);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder=new StringBuilder();
for(String line=null;(line = reader.readLine()) != null;){
builder.append(line).append("\n");
}
JSONTokener jsonTokener=new JSONTokener(builder.toString());
JSONObject finalJson=new JSONObject(jsonTokener);
JSONArray data=finalJson.getJSONArray("data");
由于数据太大,我得到03-21 03:41:49.714: E/AndroidRuntime(666): Caused by: java.lang.OutOfMemoryError 将错误源指向buildr.append(line).append("\n")。无论如何我可以处理大型数据集而不会出现内存分配问题?
【问题讨论】:
-
阅读部分内容而不是全部内容.. ?
标签: java android json webrequest