在这个问题中How can I serialize a RealmObject to JSON in Realm for Java?领域代表说可以通过GSON序列化领域对象。你能解释一下吗? 我试过这个。
RealmResults<Dog> myDogs=realm.where(Dog.class).findAll();
new Gson().toJson(myDogs);
但是发生了StackOverflowError。
答案 0 :(得分:0)
要使GSON序列化与Realm一起使用,您需要为每个可以序列化的对象编写一个自定义JsonSerializer,并将其注册为TypeAdapter。
您可以在此要点中查看示例:https://gist.github.com/cmelchior/ddac8efd018123a1e53a
答案 1 :(得分:0)
更简单的方法是使用List<Dog>
创建RLMResult<Dog>
,然后使用Gson将此列表序列化。
答案 2 :(得分:0)
根据反射得到StackOverflow
Gson
但是托管对象(RealmObjectProxy
)没有实际字段,父字段null
也是代理字段的一部分在Gson
类中发生$GsonTypes
字段类型识别时产生递归。
要序列化RealmObject
,您可以使用以下选项之一:
为每个使用getter获取数据的RealmObject
子项编写自己的适配器。
序列化前调用realm.copyFromRealm(realmObject)
。它看起来像new Gson().toJson(realm.copyFromRealm(realmObject))
根据第二个选项RealmSupportForGson
希望有所帮助