我的json数据看起来像是来自服务器api的

{
  //...
  PredecessorIds:[[1,2][3,4][5]]
  //...
}

我可以通过RealmList<RealmInt>成功地处理整数或字符串数组,但这次我失败了,因为不支持realmlist>说,"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>>来存储简单的RealmObject,gson很容易转换List<List<Integer>>。:。-/

最佳答案

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

关于android - 无法在Realm.io中处理RealmList <RealmList <RealmInt >>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36983050/

10-10 04:45