首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域createOrUpdateAllFromJson来创建不持久化的RealmModel对象?

问领域createOrUpdateAllFromJson来创建不持久化的RealmModel对象?
EN

Stack Overflow用户
提问于 2016-11-30 17:09:37
回答 3查看 730关注 0票数 2

在我开发的Android应用程序中,我非常高兴地使用了领域Java。我从服务器API接收JSONObject数组,而领域则通过主领域实例对象上的方便的createOrUpdateAllFromJson忠实地摄取它们。

这方面的典型流程如下:

代码语言:javascript
复制
// get API results into JSONArray jsonObjArrs variable
realm.beginTransaction();
realm.createOrUpdateAllFromJson(MyCoolModel.class,jsonObjArrs);
realm.commitTransaction();

但是,我现在遇到了这样一种情况:我希望创建一个临时的内存中的数组,该数组包含相同的MyCoolModel对象,而不需要实际将它们保存到领域中,因为我希望在特定用例完成后立即将它们扔掉。在我看来,它类似于createOrUpdateAllFromJson,它的同级方法只能在主领域实例对象上使用。

有没有任何方法可以利用这个方便的JSON来实现对象模型创建者,或者我需要用手动/自动化的JSON解析来编写另一个实现呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-02 16:04:08

最后,我使用了领域的“内存领域”特性。我编写了一个简单的函数,它将返回一个新的内存中的领域实例,并以一个新的UUID作为名称:

代码语言:javascript
复制
public Realm unpersistedRealm(){
    RealmConfiguration myConfig = new RealmConfiguration.Builder()
            .name(UUID.randomUUID().toString())
            .inMemory()
            .build();
    return Realm.getInstance(myConfig);
}

我使用它作为一个单独创建的实例,仅仅是为了丢弃数据。我使用普通的inMemoryRealmInstance.createOrUpdateAllFromJson()调用创建对象,并在完成时关闭内存实例。我在片段的onCreateView()调用期间创建实例,并关闭onDestroyView()中的领域。

继续使用领域(尽管是内存中的实例)给了我以下独特的优势:

  • 在构建的反复制中使用@PrimaryKey在我的MyCoolModel密钥字段中。如果我要使用我之前想到的手动ArrayList<MyCoolModel>方法,我将不得不手动去复制,并担心其他已经为我解决的头痛问题。
  • 基于查询的排序、过滤等。
票数 0
EN

Stack Overflow用户

发布于 2016-12-01 08:46:57

如果您希望使用JSON结构中的内存对象,则应该查看标准的JSON解析器,如GSON、Jackson或Moshi。领域没有任何内置的方式来做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2016-12-01 14:09:24

一个可笑的棘手的解决方案是

代码语言:javascript
复制
realm.beginTransaction();
realm.createOrUpdateAllFromJson(MyCoolModel.class,jsonObjArrs);
List<MyCoolModel> list = realm.copyFromRealm(realm.where(MyCoolModel.class)).findAll());
realm.cancelTransaction();
return list;

但是你最好使用LoganSquare (或者GSON/Moshi/等等)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40894222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档