Gson是一个 Java 库,用于将 Java 对象转换为 JSON 字符串,反之亦然。我在我的项目中遇到了同样的问题,并使用 Gson 将 HashMap 转换为字符串,将其保存到 SharedPreferences 中,然后在另一个活动中将其取回。
要存储地图:
SharedPreferences preferences = getSharedPreferences("com.your.package", MODE_PRIVATE);
Type genericType = new TypeToken<HashMap<String, String>>() {}.getType();
String serializedHashMap = Helpers.serializeWithJSON(your_hashmap, genericType);
preferences.edit().putString("Somename", serializedHashMap).commit();
序列化与JSON():
public static String serializeWithJSON(Object o, Type genericType) {
Gson gson = new Gson();
return gson.toJson(o, genericType);
}
反序列化:
Gson gson = new Gson();
Type genericType = new TypeToken<HashMap<String, String>>() {}.getType();
HashMap<String, String> hashMap = gson.fromJson(preferences.getString("Somename", "Errormessage"), genericType);
要将其永久存储在文件中,请使用 amalBit 的答案。