Meine JSON-Daten wie folgt aussehen vom Server apifehlgeschlagen Realmlist <Realmlist <RealmInt>> in Realm.io
{
//...
PredecessorIds:[[1,2][3,4][5]]
//...
}
I durch RealmList<RealmInt>
die Arrays von Integer oder String verarbeiten kann erfolgreich zu handhaben, aber dieses Mal hat ich konnte nicht mit einem Fehler, weil RealmList> nicht unterstützt wird. "Type parameter 'io.realm.realmList' is not within its bounds...."
Für RealmInt
siehe this link.
Ich habe versucht, es zu lösen RealmList<RealmLista>
mit dem RealmLista von RealmObject
erstreckt und eine RealmList
wie diese
public class RealmLista extends RealmObject {
public RealmList<RealmInt> value;
public RealmLista() {
}
public RealmLista(RealmList<RealmInt> val) {
this.value = val;
}
}
und erstellt dann eine RealmListaTypeAdapter
und hinzugefügt, um es zu Gson aber wenn Gson expects an Object (RealmLista) but is found array
Deserialisieren, wie Die oben gezeigten Daten vom Server sind offensichtlich.
//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;
}
Gibt es eine Möglichkeit, eine einfache List<List<Integer>>
zu speichern, indem zu RealmObject
jeglicher Art Umwandlung beim Speichern, List<List<Integer>>
wird leicht durch Gson umgewandelt. : -/
[Dies funktioniert für nur 'Realmlist] (https: //gist.github .com/cmelchior/1a97377df0c49cd4fca9), aber Sie benötigen ein neues Objekt, das eine 'RealmList' von Realms speichert, wenn Sie ein Array von ihnen speichern wollen. –
EpicPandaForce