Android: Przetwarzanie dużego pliku JSON

Tworzę aplikację na Androida, która powinna analizować Json z pliku lub adresu URL do jsonarray i jsonobjects. Problem polega na tym, że mój json ma 3,3 MB i kiedy używam prostego kodu, coś w tym stylu: (nie mogę teraz uzyskać dostępu do mojego prawdziwego kodu, ponieważ im w pracy, skopiowałem jakiś kod z samouczka, więc mogą być w nim jakieś błędy)

(zakładając, że mam już treść wejściową)

InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    builder.append(line);
String twitterfeed = builder.toString();
}

JSONArray jsonArray = new JSONArray(twittefeed);
            Log.i(ParseJSON.class.getName(),
                    "Number of entries " + jsonArray.length());
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                Log.i(ParseJSON.class.getName(), jsonObject.getString("text"));

Kiedy uruchamiam ten kod na moim urządzeniu z Androidem, otrzymuję błąd OutOfMemory podczas analizowania łańcucha do jsonArray. Zalogowałem kilka rzeczy i odkryłem, że mój całkowity ciąg to 17 MB (plik json o rozmiarze 3,3 MB ?!) Kiedy używam małego pliku json, takiego jak twitterfeed, kod działa dobrze. Kiedy dostałem ten ciąg 17 MB w mojej pamięci, nie mogę przeanalizować jsona, bo wtedy zabrakło mi pamięci.

Po wielu badaniach odkryłem, że jackson może być moim rozwiązaniem, ponieważ zrozumiałem, że można analizować strumień wejściowy. To powinno pomóc, ponieważ nie potrzebuję 17 MB ciągów w mojej pamięci; i to nie jest najskuteczniejszy sposób, w jaki myślę ... Ale nie mogę tego wyjaśnić, naprawdę zadziała i nie udało mi się go uruchomić. Czy ktoś wie o tym, że naprawdę będzie działać i gdzie mogę znaleźć samouczek?

znalazłem„createJsonParser - public JsonParser createJsonParser (InputStream in)” i myślę, że to mój sposób na ... ale nie wiem, jak zaimplementować to w moim kodzie i nie mogę znaleźć przykładu. Czy ktoś wie, jak to działa?

questionAnswers(2)

yourAnswerToTheQuestion