无法处理RealmList <realmlist <realmint>&gt;在Realm.io

时间:2016-05-02 12:58:10

标签: android database realm realm-list

我的JSON数据在服务器api

中看起来像这样
{
  //...
  PredecessorIds:[[1,2][3,4][5]]
  //...
}

我可以通过RealmList<RealmInt>成功处理Integer或String数组,但这次我失败了,因为RealmList&gt;不支持说"Type parameter 'io.realm.realmList' is not within its bounds...."

对于RealmInt,请参阅this link

我尝试使用RealmList<RealmLista>来解决它,其中RealmLista从RealmObject延伸并且RealmList像这样

public class RealmLista extends RealmObject {
public RealmList<RealmInt> value;
public RealmLista() {
}

public RealmLista(RealmList<RealmInt> val) {
  this.value = val;
}

}

然后创建了一个RealmListaTypeAdapter并将其添加到Gson但是在反序列化Gson expects an Object (RealmLista) but is found array时,因为上面显示的服务器数据很明显。

//RealmListAdapter for Gson
@Override
public RealmLista read(JsonReader in) throws IOException {
    RealmLista lista = new RealmLista();
    Gson gson = new Gson();
    //how to read that [[1],[3,4]] int into RealmLista
    in.beginArray();
    while (in.hasNext()) {
        lista.value.add(new RealmInt(in.nextInt()));
    }
    in.endArray();
    return lista;
}

有什么方法可以在保存的同时转换为任何类型的List<List<Integer>>来存储简单的RealmObjectList<List<Integer>>很容易被Gson转换。 : - /

1 个答案:

答案 0 :(得分:1)

Realm目前不支持列表列表。见https://github.com/realm/realm-java/issues/2549

所以@ EpicPandaForce关于创建一个包含内部列表的RealmObject的想法可能是最好的解决方法。

看起来像这样:

public class Top extends RealmObject {
  private RealmList<ChildList> list;
}

public class ChildList extends RealmObject {
  private RealmList<RealmInt> list;
}

public class RealmInt extends RealmObject {
  private int i;
}

要点的正确链接应为:https://gist.github.com/cmelchior/1a97377df0c49cd4fca9