URLからjsonデータをダウンロードし、解析してから表示するAndroidアプリがあります。残念ながらしばらくインターネットから離れますが、アプリの開発は続けたいと思っています。
そのデータをオフラインで使用するために保存する方法はありますか?
基本的に、リンクJSONObject
で見つかったデータを使用するようにハードコーディングする方法はありますか
それで、私はそれを地元で手に入れますか?
次のオプションがあります。
RoboSpiceライブラリを使用する
Androidボレーライブラリを使用
上記の両方のライブラリにはキャッシュ機能があります。条件付きでキャッシュを無効にして、更新されたデータを取得できます。
共有設定を使用して JSON 文字列を保存し、必要に応じて更新します。
データを保存するには:
SharedPreferences settings = getApplicationContext().getSharedPreferences("PREF_NAME", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("strJSON", "" + strJSONfromServer);
editor.commit();
データを取得するには:
SharedPreferences settings = getApplicationContext().getSharedPreferences("PREF_NAME", MODE_PRIVATE);
String strData = settings.getString("strJSON", "");
データをクリアするには:
SharedPreferences settings = getApplicationContext().getSharedPreferences("strJSON",MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.remove("strJSON");
editor.commit();
マシンに http サーバーがインストールされている場合は、その json データをテキスト ファイルとして保存し、デバイスから次の URL でアクセスできます: " http://10.0.2.2:PORT_NUMBER "
別の解決策として、http サーバーは必要ありません。この回答で説明されているように、データをテキスト ファイルとして保存し、デバイスからアクセスできます: シンプルなテキスト ファイルの読み取り
編集:より簡単な方法は、データを文字列に保存することです:
String stringJson = "{\"Baseball\":[{\"Opponent\": ... "
(\" で文字をエスケープする必要があることに注意してください)
json データを解析するには、必要なことは次のとおりです。
JSONObject jsonObject = new JSONObject(stringJson);
json を assets ディレクトリの下のファイルに保存する別のオプション。次に、アプリケーション内の他のファイルと同じようにアクセスできます。
http://developer.android.com/reference/android/content/res/AssetManager.html