【发布时间】:2018-10-21 18:56:45
【问题描述】:
对于我的应用程序,我有一个使用 LiveData 填充的回收器视图。回收站视图中的每个项目都是我创建的一个事件对象。我正在使用 Room 和 Dao 来存储这些事件并在 SQL 与存储库和 UI 控制器之间创建抽象层,但问题是 Dao 只能将 primitize 类型序列化为 JSON。我创建了类型转换器来在 ArrayList 和 json 之间进行转换,但我需要能够在 LiveData[ArrayList[Event]] 之间进行转换才能使其正常工作。
到目前为止,这就是我所拥有的:
@TypeConverter
public static String fromEvent(LiveData<ArrayList<Event>> events){
Gson gson = new Gson();
String json = gson.toJson(events);
return json;
}
@TypeConverter
public static LiveData<ArrayList<Event>> fromEventString (String value){
Type eventType = new TypeToken<LiveData<ArrayList<Event>>>() {}.getType();
return new Gson().fromJson(value, eventType);
}
如何使用 Google 的 Gson 库在这两种数据类型之间进行相互转换?哈哈,我显然对此不太有经验。
感谢您的帮助!!
【问题讨论】:
标签: android json android-recyclerview dao android-livedata