Realm 3.5.0
我的Android应用程序必须从json创建/更新Realm对象。
这里POJO:
public class Person extends RealmObject {
@PrimaryKey
private int id;
@Required
private String name;
private String address;
private String contacts;
}
这里从json创建/更新Realm对象的片段:
public void addOrUpdatePerson(final String personASJson) {
Realm realm = Realm.getDefaultInstance();
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.createOrUpdateObjectFromJson(Person.class, personASJson);
}
});
}
我的步骤:
结果我有下一个json:
{" id":1,"地址":"地址1","名称":"人1","联系人":"我的联系人"}
致电方法" addOrUpdatePerson "在Realm上创建新的人员成功。 OK!
现在我想更改字段内容"联系人"在同一个人中。
所以我创建了新的json:
{" id":1,"地址":"地址1","名称":"人1","联系人":"我的新联系人"}
致电方法" addOrUpdatePerson " 人成功更新了字段的新值" 联系人"。 OK!
但是当我需要更新存在人时,我不想传递WHOLE json。
但我想传递的只是delta。 所以对于更新存在人我可以使用下一个json:
{"id": 1, "contacts": "My SUPER NEW contacts"}
正如您所看到的,我只传递了人 ID 且只传递了delta(字段" 联系人")。
我再次调用方法" addOrUpdatePerson "这个json和人成功更新了字段" 联系人"的新值。 OK!
我将确认要更新Realm中的对象我只能使用 Person.id 设置delta。不需要设置WHOLE json。
这是对的吗?
答案 0 :(得分:0)
是的,这是正确的。我们的JSON方法可以使用部分定义的JSON结构。任何未设置的字段都将被忽略。