Слишком большой объем данных в одной строке - как ограничить? - PullRequest
0 голосов
/ 08 января 2012

Название немного двусмысленно, но я имею в виду:

InputStream is = connection.getInputStream();
      BufferedReader rd = new BufferedReader(new InputStreamReader(is));

      String line;
      JSONArray ja = new JSONArray();

      while((line = rd.readLine()) != null) {

          ja = new JSONArray(line);
      }
      rd.close();
      return ja;

    } 

Если rd.readLine () возвращает ОГРОМНОЕ количество данных, как я могу их разделить или ограничить? У меня внешняя ошибка.

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Я бы рекомендовал использовать библиотеку Jackson JSON для анализа JSON на Android.Это самая быстрая и, скорее всего, встроенная в его код обработка больших строк JSON.

http://jackson.codehaus.org/

1 голос
/ 08 января 2012

вижу два варианта 1) Храните его как часть приложения, добавляя его в ассеты 2) Редизайн ваших данных. В большинстве случаев данные, которые вы извлекаете в этом единственном вызове, могут быть бесполезны в то же время Я бы предложил разделить ваш поиск данных по мере необходимости Из-за Dalvik VM у вас нет возможностей увеличить размер кучи, поэтому вам нужно подумать об этих альтернативах, чтобы выйти из этой ошибки OutofMemoryError.

1 голос
/ 08 января 2012

Вы пытались увеличить размер кучи Java (-Xmx)?Значение по умолчанию может быть довольно маленьким.

...