Ich habe eine große Zeichenfolge, die JSON-Feed darstellt. Meine App lädt diesen Feed vom Remote-Webdienst herunter.Was ist der beste Weg, um mit JSON-Objekt umzugehen?
Fragen:
1) Sobald ich JSON-Feed herunterladen, wo soll ich es lagern? Momentan speichere ich es in App Preferences und es funktioniert gut. Ich bin nur interessiert, wenn es einen Grund gibt, das nicht zu tun, oder wenn es bessere/schnellere Optionen gibt, wie Interner Speicher oder etwas anderes?
2) Wenn ich bin Daten in meiner Tätigkeit aus diesem Feed zu zeigen, ich etwas wie folgt aus:
JSONObject jsonObj = new JSONObject(json_string);
JSONArray jsonArr = jsonObj.getJSONArray("root");
for (int m = 0; m < jsonArr.length(); m++) {
....
}
Das Problem ist, die erste Zeile, die JSON-Feed parst ist eine Art teuer. Bei meiner derzeitigen Größe (das könnte in Zukunft wachsen) braucht es vielleicht eine halbe Sekunde, um fertig zu werden, nicht viel, aber immer noch ein Problem. Zum Beispiel klicke ich auf die Schaltfläche, um die Aktivität anzurufen (um Daten anzuzeigen) und diese Pause von 1/2 Sekunde ist spürbar und nicht gut.
Um diese Pause zu vermeiden, sollte ich JSON wahrscheinlich sofort analysieren, nachdem der Feed heruntergeladen wurde. Dann Frage ist, wo soll ich JSON-Objekt geparst halten?
i) Ich kann kein JSON-Objekt in den Einstellungen speichern, da dort nur primitive Daten gespeichert werden können.
ii) Sollte ich bei jedem Start meiner App ein Parsing durchführen und meine analysierten JSON-Objekte (ich habe mehr davon) global (auf Anwendungsebene) machen, damit ich von allen meinen Aktivitäten darauf zugreifen kann?
iii) Oder, glaube ich, wäre meine dritte Option, JSON-Objekte statisch zu deklarieren, so dass sie leicht von anderen Aktivitäten aus zugänglich sind?
Was ist der beste Weg, dies zu tun?
THX.
Ich muss es speichern, da ich es nicht jedes Mal laden möchte, wenn meine App startet. Wie gesagt, ich speichere es als String. Ich würde gerne in der Lage sein, es als JSON-Objekt zu speichern, um Zeit zu sparen, die ich für die Analyse meiner JSON-Zeichenfolge benötige. – bobetko
Wenn das JSON-Objekt nicht so gespeichert werden kann, wie es ist (so dass ich es aus einer meiner Aktivitäten heraus aufrufen kann), ist dies die beste Möglichkeit, das JSON-Objekt in allen Anwendungen verfügbar zu machen. – bobetko
Die Zeit, die zum Analysieren eines JSON-Objekts benötigt wird, ist trivial. Wie denkst du, könntest du es als Objekt speichern? Es muss serialisiert werden. Serialisierung in JSON ist vollkommen gültig. – Falmarri