Android: Analysieren von großen JSON-Datei

Ich bin momentan dabei, ein android-Anwendung, die Parsen einer Json-Datei aus einer Datei oder einer url zu einem jsonarray und jsonobjects.
Das problem ist, dass meine json-3,3 mb und wenn ich einen einfachen code, so etwas wie dieses: (nicht acces mein code jetzt, weil ich bin bei der Arbeit, kopiert code aus dem tutorial; so könnte es einige Fehler in der it)

(vorausgesetzt, ich habe bereits meine inputstream content)

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, bekomme ich eine OutOfMemory-Fehler beim Parsen der Zeichenfolge, um die jsonArray.
Ich loggte mich einige Dinge, die ich festgestellt, dass meine gesamten string ist 17 mb (von 3,3 mb json-Datei?!) Wenn ich eine kleine json-Datei, wie ein twitterfeed oder so, funktioniert der code einwandfrei.
Wenn ich diese 17 mb string in meiner Erinnerung kann ich nicht Parsen von json, weil ich dann run out of memory.

Nach viel Forschung fand ich, dass jackson vielleicht meine Lösung, weil ich verstanden habe, ist es möglich zu analysieren, einen inputstream. Dies sollte helfen, denn als ich brauche nicht die 17 mb Zeichenfolge in meinem Gedächtnis; und dies ist nicht der effizienteste Weg, ich gues.... Aber ich kann Sie nicht klar von dieser wirklich funktioniert, und nicht bekommen, es läuft mir.
Kennt jemand diese wirklich funktionieren, und wo finde ich eine Anleitung?

Fand ich die "createJsonParser-öffentliche JsonParser createJsonParser(InputStream in)" und denke, dies ist mein Weg zu gehen... aber ich weiß nicht, wie das umzusetzen, dies in meinen code, und kann nicht finden, ein Beispiel. Weiß jemand wie das funktioniert?

InformationsquelleAutor Jasper | 2012-06-19
Schreibe einen Kommentar