如何序列化具有自定义类的Realm对象

时间:2017-09-21 02:43:40

标签: android realm parceler

我在构建具有自定义类的Realm对象时遇到问题。

@Parcel(
    value = Parcel.Serialization.BEAN,
    analyze = { Message.class })

@RealmClass
public class Message implements Comparable<Message>, RealmModel {`

@PrimaryKey
@Index
private long id;
@JsonProperty("thread_id")
long threadId;
@JsonProperty("message")
public String message;
@JsonProperty("user")
public User user;
...
}

当服务器发送json响应时,尝试使用

解析为Message realm对象
realm.createObjectFromJson(MesssageMessage.class, JSONObject)

问题是用户。我收到了编译错误&#34;不支持提交的用户&#34;。

下面是User类,它不是域对象。

@JsonIgnoreProperties("incomplete_signed_up")
public class User implements KeepClassFromProguard, Parcelable {
public static final Parcelable.Creator<User> CREATOR = new
Parcelable.Creator<User>() {


    @Override
    public User createFromParcel(Parcel in) {
        return new User(in);
    }

    @Override
    public User[] newArray(int size) {
        return new User[size];
    }
};

public long id;
@JsonProperty("account_id")
private long accountId;
@JsonProperty("display_name")
public String display_name;
@JsonProperty("nick_name")
public String nickname;
@JsonProperty("user_detail")
public UserDetail userDetail;

...
}

我看了https://gist.github.com/cmelchior/ddac8efd018123a1e53ahttp://parceler.org/#getting_parceler,但我还没有得到答案。 我无法将每个类更改为领域对象,因为它们都有另一个自定义类。

有谁知道这是如何处理的?希望有任何好的例子。 感谢。

1 个答案:

答案 0 :(得分:1)

RealmModel中的所有引用都必须引用其他RealmModel类。这是我们坚持不懈的唯一方式。

您可以@Ignore user字段,但Realm不会保存它。