如何将Hashmap转换为String以保存在SQLite数据库中?

时间:2014-12-24 05:43:00

标签: java android sqlite

我需要找到一种方法,将HashMap保存到字符串中以保存在我的SQLite数据库中,以便在以后检索。

这是我的HashMap:

private Map<String, Bitmap> myMarkersHash new HashMap<String, Bitmap>();

然后保存到SQlite数据库时:

contentValues.put(LocationsDB.FIELD_HASH, myMarkersHash);

但问题是我在put contentValues.put下出现错误并出现此错误:

The method put(String, String) in the type ContentValues is not applicable for the arguments (String, Map<String,Bitmap>)

所以我的问题是如何将其转换为字符串以便我可以将其保存到我的sqlite数据库中?

谢谢

1 个答案:

答案 0 :(得分:5)

您可以使用Gson库将HashMap转换为String,从而将HashMap存储在数据库中。 该库将您的对象转换为String,您可以随时返回该对象 链接到下载库:https://code.google.com/p/google-gson/


将对象转换为字符串:

Gson objGson= new Gson();
String strObject = objGson.toJson(myMarkersHash);
Bundle bundle = new Bundle();
bundle.putString("key", strObject);


将String转换为Object:

Gson gson = new Gson();
Type type = new TypeToken<Model>() {}.getType();
myMarkersHash = gson.fromJson(bundle.getString("key"), type);


检查此示例:http://www.java2blog.com/2013/11/gson-example-read-and-write-json.html