Java / Android: java.lang.OutOfMemoryError ao criar um objeto JSON

Estou importando dados JSON de um banco de dados público URIhttp: //data.seattle.gov/api/views/3k2p-39jp/rows.jso e as linhas chegam a 445454. Usando o código a seguir, estou construindo o objeto JSON de todos os dado

   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");

Por que os dados são muito grandes, estou recebendo03-21 03:41:49.714: E/AndroidRuntime(666): Caused by: java.lang.OutOfMemoryError apontando a fonte do erro parabuildr.append(line).append("\n"). Existe alguma maneira de lidar com grandes conjuntos de dados sem ter problemas de alocação de memória?

questionAnswers(8)

yourAnswerToTheQuestion