2013-12-16 84 views
0

我正在使用谷歌地圖v2和每次我從資產文件夾解析相同的json,並用它來表示它在地圖上。我將所有的json值存儲到ArrayList<Map<String, Object>> myarraylist ;我想將其存儲到android中。
我真的很感激任何方式這樣做。我只知道將字符串和布爾值存儲到sharedpreferences.Please幫我。
在此先感謝。保存ArrayList <地圖<字符串,對象>> android

+0

如果你的應用資源中保存了資源,爲什麼你想要反序列化它,然後再次序列化它?用戶是否允許輸入數據並且想要保存它? – Raffaele

+0

我把它作爲json,但我想它ArrayList > arraylist。因此,數據已被解析,因此將需要較少的時間來添加多邊形在地圖上。 – jason

+0

試圖在http://ashoksubha.blogspot.in/2012/05/android-array-list-stored-synchronized.html – jason

回答

4

您可以使用gson.jar將類對象存儲到SharedPreferences中。你可以從這裏https://code.google.com/p/google-gson/downloads/list

SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 

立即下載這個罐子裏保存

Editor prefsEditor = mPrefs.edit(); 
Gson gson = new Gson(); 
String json = gson.toJson("MyObject"); 
prefsEditor.putString("MyObject", json); 
prefsEditor.commit(); 

中檢索

Gson gson = new Gson(); 
    String json = mPrefs.getString("MyObject", ""); 
    MyObject obj = gson.fromJson(json, MyObject.class); 

用戶自定義對象的保存清單SharedPreferences。例如

public static final String CONNECTIONS = "connections"; 
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); 

User entity = new User(); 
// ... set entity fields 

List<Connection> connections = entity.getConnections(); 
// convert java object to JSON format, 
// and returned as JSON formatted string 
String connectionsJSONString = new Gson().toJson(connections); 
editor.putString(CONNECTIONS, connectionsJSONString); 
editor.commit(); 

擺脫SharedPreferences用戶自定義對象的列表

String connectionsJSONString = getPreferences(MODE_PRIVATE).getString(CONNECTIONS, null); 
Type type = new TypeToken < List <Connection>>() {}.getType(); 
List <Connection> connections = new Gson().fromJson(connectionsJSONString, type) 
+0

的行中實現我從來沒有使用GSON,你可以指導我在一篇教程中實現GSON我的code.Thanks Nitesh將盡力實施相同的 – jason

+0

試試這個... http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/ –

+0

真棒謝謝Nitesh。 – jason

1

你有幾個選擇。有關詳細信息,請查看http://developer.android.com/guide/topics/data/data-storage.html

+0

的行中實現我可以將它存儲在文本文件中嗎? ArrayList > arraylist; – jason

+0

我相信你可以做到這一點,但這與將他們放在資產中並沒有什麼不同,就像你已經做的一樣......或者你是否改變了數據?在那種情況下,我建議使用數據庫。或者,根據存儲在對象中的數據的複雜程度,共享首選項(您可以將所有類型的原始數據放在此處:http://developer.android.com/reference/android/content/SharedPreferences.Editor.html )。 – jpm

+0

試圖在http://ashoksubha.blogspot.in/2012/05/android-array-list-stored-synchronized.html – jason

0

我不認爲你永遠拿出,分別從用戶的角度出發提高性能的格式 - 但你可以嘗試Serializable的方法 - 確保你的地圖中的所有對象都是可串行化的 - 並將二進制blob存儲在內部存儲器中的文件中

相關問題