我的目标是将使用 GSON 实例化的对象保存到使用 Realm 的数据库中。
我的问题如下:
我可以使用 GSON 实例化一个对象,因此 GSON 会处理所有属性, 但它不会被持久化到 db
我可以用 Realm 实例化一个对象,但是我必须填写属性的所有 setter 。
在我的 oncreate 中,这部分对于两种方法都是一样的
//delete previous realm file
Realm.deleteRealmFile(this);
//gson instance
Gson gson = new Gson();
//realm instance
realm = Realm.getInstance(this);
** 我的类(class)名称是 Vacature **
信息:我知道下面的代码需要在里面:
realm.beginTransaction();
// code here
realm.commitTransaction();
选项 1:
//get class with gson
Vacature vacatureGson = gson.fromJson(jsonString, Vacature.class);
这行不通,因为您必须使用实例化 Realm 对象
Class instance = realm.createObject(Class.class); // Create a new object
选项 2:
//get instance with gson
Vacature vacatureGson = gson.fromJson(jsonString, Vacature.class);
//make instance with realm
Vacature realmVacature = realm.createObject(Vacature.class);
realmVacature = vacatureGson;
这不起作用,因为这不是将所有属性从一个对象复制到另一个对象的正确方法。 但是,如果有一种将 gsonObject 中的所有属性复制到 realmObject 的好方法, 选项 2 可能有效。
关于如何解决这个难题的任何想法?
最佳答案
来自 Realm 的 Emanuele。
目前解决方案不是最理想的,并在以下示例之一中给出:https://github.com/realm/realm-java/blob/master/examples/gridViewExample/src/main/java/io/realm/examples/realmgridview/GridViewExampleActivity.java
我们正在努力使体验更加流畅!
关于java - 合并 Realm 对象和 Gson 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26275143/