2013-01-06 22 views
0

我有一個android應用程序,從url下載json數據,解析並顯示它。 不幸的是,我會遠離互聯網一段時間,但想繼續在應用程序上工作。保存本地開發的url的JSON

有沒有一種方法可以將這些數據保存爲脫機使用?

從本質上講,是有辦法,我可以硬編碼JSONObject使用在link

所以,我會在本地找到的數據?

+1

嘗試SQLite的是存儲的JSONObject和提高性能的正確的選擇你的應用。 –

+1

你可以得到JSON數據,然後將其內部保存在數據庫或持久性文件,然後從文件中讀取現在 – dchhetri

+0

或者只是複製和硬編碼它,沒有什麼不對的測試使用 – dchhetri

回答

0

如果您已經安裝在你的機器http服務器,你可以從設備保存JSON數據爲文本文件,並獲得它的網址:「http://10.0.2.2:PORT_NUMBER

另一種解決方案,無需http服務器,您可以將數據保存爲文本文件,並從您的設備訪問它,在這個答案解釋: Reading a simple text file

編輯: 簡單的方法是隻保存在一個字符串中的數據:

String stringJson = "{\"Baseball\":[{\"Opponent\": ... " 

(要知道,你將不得不使用\字符「)

解析JSON數據,所有你需要做的是

的JSONObject的JSONObject =新的JSONObject(stringJson);

1

,可以有以下選擇:

  1. 使用RoboSpice

  2. 採用Android凌空庫

Both上面的庫具有緩存功能。在有條件情況下,您可以使緩存無效以檢索更新的數據

使用共享首選項來存儲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();