Android: Parsing große JSON-Datei

Ich erstelle eine Android-Anwendung, die einen Json aus einer Datei oder einer URL in ein Jsonarray und Jsonobjects analysieren soll. Das Problem ist, dass mein json 3,3 MB groß ist und wenn ich einen einfachen Code verwende, so etwas wie: (Ich kann jetzt nicht auf meinen echten Code zugreifen, weil ich gerade arbeite und einen Code aus dem Tutorial kopiere; daher kann es zu Fehlern kommen.)

(vorausgesetzt, ich habe bereits meinen Inputstream-Inhalt)

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

Wenn ich diesen Code auf meinem Android-Gerät ausführe, erhalte ich einen OutOfMemory-Fehler beim Parsen der Zeichenfolge zum jsonArray. Ich habe einige Dinge protokolliert, bei denen ich festgestellt habe, dass meine gesamte Zeichenfolge 17 MB groß ist (von einer 3,3 MB großen JSON-Datei ?!). Wenn ich eine kleine JSON-Datei verwende, z. Wenn ich diese 17 MB-Zeichenfolge in meinem Speicher habe, kann ich den JSON nicht analysieren, weil mir dann der Speicher ausgeht.

Nach vielen Recherchen habe ich herausgefunden, dass Jackson meine Lösung sein könnte, weil ich verstanden habe, dass es möglich ist, einen Inputstream zu analysieren. Dies sollte helfen, denn dann brauche ich die 17 MB-Zeichenfolge nicht in meinem Gedächtnis; und dies ist wahrscheinlich nicht die effizienteste Art und Weise ... Aber ich kann nicht klar machen, dass dies wirklich funktionieren wird, und ich habe es selbst nicht zum Laufen gebracht. Weiß jemand, dass dies wirklich funktionieren wird und wo ich ein Tutorial finden kann?

ich fand die"createJsonParser - public JsonParser createJsonParser (InputStream in)" und denke, das ist mein Weg zu gehen ... aber ich weiß nicht, wie ich das in meinem Code implementieren soll, und kann kein Beispiel finden. Weiß jemand, wie das funktioniert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage