将 List<String> 的 Gson 反序列化为 realmList<RealmString>
我正在使用gson的改造来反序列化我的json到领域对象中。这在大多数情况下效果很好。处理时会出现麻烦
RealmList(String(或任何其他基本数据类型))
由于 Realm 不支持 RealmList,而 E 不支持 Realm 对象,因此我将 String 包装在 RealmObject 中。
public class RealmString extends RealmObject {
  private String val;
  public String getValue() {
    return val;
  }
  public void setValue(String value) {
    this.val = value;
  }
}
我的领域对象如下
    public class RealmPerson extends RealmObject {
    @PrimaryKey
    private String userId;
    ...
    private RealmList<RealmString> stringStuff;
    private RealmList<SimpleRealmObj> otherStuff;
    <setters and getters>
   }
SimpleRealmObj工作正常,因为它只有字符串元素
    public class SimpleRealmObj extends RealmObject {
    private String foo;
    private String bar;
       ...
    }
如何反序列化 stringStuff?我尝试使用gson TypeAdapter
public class RealmPersonAdapter extends TypeAdapter<RealmPerson> {
    @Override
    public void write(JsonWriter out, RealmPerson value) throws IOException {
        out.beginObject();
        Log.e("DBG " + value.getLastName(), "");
        out.endObject();
    }
    @Override
    public RealmPerson read(JsonReader in) throws IOException {
        QLRealmPerson rList = new RealmPerson();
        in.beginObject();
        while (in.hasNext()) {
            Log.e("DBG " + in.nextString(), "");
        }
        in.endObject();
        return rList;
    }
然而,我仍然击中了非法状态异常
2334-2334/com.qualcomm.qlearn.app E//PersonService.java:71: main com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: expected a string,但在第 1 列 3 行路径 $处是 NAME。
我之前尝试过RealmList,RealmString适配器,但无济于事。到目前为止,我设法找到的唯一解决方法是 https://github.com/realm/realm-java/issues/620#issuecomment-66640786 更好的选择?