2016-06-30 7 views
1

Ich habe versucht, REALM ORM-Bibliothek für mein Projekt, und ich habe ein Problem mit createOrUpdateAllFromJson.Realm - createOrUpdateAllFromJson für mehrdimensionale JSON

Meine JSON ist:

[ 
    { 
    "id":"487745454", 
    "barcode":"84555453", 
    "items":{ 
     "12456788":{ 
     "id":"12456788", 
     "name":"Item1" 
     }, 
     "12456789":{ 
     "id":"12456789", 
     "name":"Item2" 
     } 
    } 
    }, 
    { 
    "id":"487745455", 
    "barcode":"84555453", 
    "items":{ 
     "12456788":{ 
     "id":"12456788", 
     "name":"Item1" 
     }, 
     "12456791":{ 
     "id":"12456789", 
     "name":"Item10" 
     } 
    } 
    } 
] 

Ich kann Barcode und ID erhalten, aber nicht Suche von Namen Objekt umfassen. Meine Klasse für get-ID und Barcode ist

public class Notepad extends RealmObject { 

    @PrimaryKey 
    private int id; 

    private String barcode; 
    private RealmList<Items> items; 
} 

Und Artikel ist:

public class Items extends RealmObject { 

    @PrimaryKey 
    private int id; 
    private String name; 
} 

Meine Frage ist, wie

Namen von Item-Objekt Throught createOrUpdateAllFromJson erhalten

ich nicht API ändern, die Rückkehr dieses JSON.

Bitte helfen Sie mir

+0

Wie greifen Sie auf den JSON zu? Ich meine, du solltest mehr die Frage artikulieren. – Carlo

Antwort

1
"items":{ 
    "12456788": { 
     "id": "12456788", 
     "name": "Item1" 
    }, 
    "12456791": { 
     "id": "12456789", 
     "name": "Item10" 
    } 
} 

Dieser Wert für „Artikel“ ein Objekt ist, aber sie versuchen, es in einem Realmlist zu analysieren. Dies wird nicht funktionieren. Auch weil Ihre IDs Strings und keine Ints sind. Es würde gearbeitet haben, wenn Ihr json

"items": [ 
    { 
     "id": 12456788, 
     "name": "Item1" 
    }, 
    { 
     "id": 12456789, 
     "name": "Item10" 
    } 
] 

war ich kenne Sie nicht die json Struktur Kontrolle haben, aber ich empfehle Ihnen, die Person wenden, und ihn, es zu ändern bittet.

Die aktuelle JSON-Struktur würde sich in Java in eine Map<String, Item> übersetzen lassen, und das ist nichts, was von Realm unterstützt wird, es sei denn, Sie werden den JSON manuell parsen.