我从公共数据库URI http://data.seattle.gov/api/views/3k2p-39jp/rows.json导入JSON数据,行最远达到445454.使用以下代码构建整个JSON对象数据。构建JSON对象时的Java/Android:java.lang.OutOfMemoryError
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")
指向误差的来源。无论如何,我可以处理大型数据集而不会导致内存分配问题?
阅读它的部分,而不是整个事情..? – JoxTraex 2012-03-21 06:24:38