JSONフィードを表す大きな文字列があります。私のアプリケーションは、リモートWebサービスからこのフィードをダウンロードします。JSONオブジェクトを処理する最善の方法は何ですか?
質問:
1)私は、私はそれを格納する必要がありJSONフィードを、ダウンロードしたら?今私はアプリの設定でそれを格納しているとうまく動作します。私はそれをしない理由がある場合、または内部ストレージまたは他の何かのような、より良い/より高速なオプションがある場合にだけ興味がありますか?
JSONObject jsonObj = new JSONObject(json_string);
JSONArray jsonArr = jsonObj.getJSONArray("root");
for (int m = 0; m < jsonArr.length(); m++) {
....
}
問題があり、JSONフィードを解析し、最初の行は一種の高価です:
2)私は私の活動で、このフィードからのデータを表示しようと思い、私はこのような何かを行います。私の現在のサイズのフィード(それは将来的に成長するかもしれません)では、完了までにはおそらく0.5秒かかりますが、それでも問題はありません。たとえば、(データを表示するために)アクティビティを呼び出すためにボタンをクリックします。この1/2秒のポーズは目立つものではありません。
この一時停止を避けるには、フィードをダウンロードした直後にJSONを解析する必要があります。それでは、問題は、JSONオブジェクトをどこで解析するのですか?
i)プリミティブデータのみがそこに保存されるため、JSONオブジェクトをプリファレンスに保存できません。
ii)私のアプリケーションが起動するたびに構文解析を行い、私のすべての活動からそれらにアクセスできるように、解析されたJSONオブジェクト(それ以上のもの)をグローバル(アプリケーションレベルで)にする必要がありますか?
iii)3番目のオプションは、他のアクティビティから簡単にアクセスできるようにJSON objestsを静的と宣言することだと思いますか?
これを行うにはどのような方法が最適ですか?
THX。
私のアプリが起動するたびにロードしたくないので、私はそれを保存する必要があります。私が言ったように私はそれをストリングとして保管しています。 JSONオブジェクトをJSON文字列の解析に費やさないように、JSONオブジェクトとして格納できるようにしたいと考えています。 – bobetko
JSONオブジェクトをそのまま保存することはできません(私は自分のアクティビティから呼び出すことができます)、JSONオブジェクトをすべてのアプリケーションで利用できるようにする最良の方法は何ですか? – bobetko
jsonオブジェクトの解析に要する時間は簡単です。それをオブジェクトとして保存できるとはどのように思いますか?それはシリアル化されなければならない。 jsonへのシリアライズは完全に有効です。 – Falmarri