Android:使用嵌套的JSON对象将JSON映射到RealmObject不起作用

ove*_*t13 1 android json realm

我有一个JSON包含嵌套json 的字符串

{
    "name": "name",
    ...
    ...
    "profile": {
        "id": 987,
        "first_name": "first name"
        ...
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过使用该方法将其映射JSONRealm,realm.createObjectFromJson(Class clazz, String string)并且问题在于嵌套的JSON未映射,所得到的RealmObject实例对应于所有字段的"profile"has 0nulls.我realm.beginTransaction()在创建操作之前和realm.commitTransaction()之后使用过.

我正在使用'io.realm:realm-android:0.80.1'我的Android项目.

你能告诉我我做错了什么吗?

谢谢.

编辑这些是我的模型类.简单的RealmObjects链接在一起

public class SomeClass extends RealmObject {
    private String name;
    private Profile profile;

    public Profile getProfile() {
        return profile;
    }

    public String getName() {
        return name;
    }    

    public void setName(String name) {
        this.name= name;
    }
}

public class Profile extends RealmObject {
    private String firstName;
    private String lastName;
    private String birthdate;
    private boolean newsLetter;
    private boolean push;
    private int userId;
    private Date lastUpdate;
    private RealmList<RealmAddress> addresses;
    private RealmList<RealmGender> genders;
}
Run Code Online (Sandbox Code Playgroud)

profile类只包含getter和setter,它包含其他字符串和整数,为简单起见,我删除了它们.

Chr*_*ior 5

您的JSON名称与您的子对象字段名称不匹配,这就是您没有看到任何数据的原因.您的profile名称与该字段匹配SomeClass,这意味着创建了对象(使用默认值),但由于没有任何字段匹配Profile,因此没有设置任何字段.

firstName != first_name
userId != id   
Run Code Online (Sandbox Code Playgroud)

如果您想在JSON和Java模型中使用单独的名称,则应使用类似GSON(http://realm.io/docs/java/#gson)的内容,因为Realm尚不支持.