2015-05-14 1 views
2

Inside Врач класс, У меня есть RealmList - специализацияList.Realm.IO - Может ли массив JSON обрабатываться с помощью createOrUpdateAllFromJson?

public class Doctor extends RealmObject { 

    @PrimaryKey 
    private String doctorId; 
    private FullName fullName; 
    private Age age; 
    private String organizationId; 
    private Position position; 
    private String category; 
    private String loyalty; 
    private RealmList<Specialization> specializationList; 
    private Contacts contacts; 
    private String key; 
.... 

Специализация класс

public class Specialization extends RealmObject{ 

    private String specializationName; 
... 

Врачи в формате JSON:

[ 
    { 
    "doctorId": "7d8e72d7-809b-4273-9a3f-fa21718dee7f", 
    "doctorFullName": { 
     "firstName": "FirstName0", 
     "lastName": "LastName0", 
     "middleName": "MiddleName0" 
    }, 
    "doctorPosition": { 
     "positionName": "PositionName0", 
     "department": "Department0" 
    }, 
    "organizationId": "7cfaf5c0-127a-4cfc-b73b-52a35fd02ffd", 
    "specializations": [ 
     { 
     "specializationName": "Specialization name 3" 
     }, 
     { 
     "specializationName": "Specialization name 2" 
     }, 
     { 
     "specializationName": "Specialization name 1" 
     } 
    ], 
    "key": "firstname0 middlename0 lastname0" 
    } 
] 

Разбор JSON с помощью createOrUpdateAllFromJson метод:

realm.createOrUpdateAllFromJson(Doctor.class, json); 

То, что я пытаюсь сделать, это получить RealmList от врача объекта:

RealmList<Specialization> specializationList = doctor.getSpecializationList(); 

Но размер specializationList равно 0.

Realm документация: Некоторые API JSON будет возвращать массивы примитивного такие типы, как целые числа или строки, которые Realm еще не поддерживает.

Можно ли проанализировать массив JSON (специализации) с помощью createOrUpdateAllFromJson?

ответ

3

Да, Realm должен уметь разбирать это, но похоже, что ваше именование неверно. Ваш класс Doctor называет его specializationList, но в вашем JSON это specializations.

Если вы измените класс доктора к следующему, он должен работать:

public class Doctor extends RealmObject { 

    @PrimaryKey 
    private String doctorId; 
    private FullName fullName; 
    private Age age; 
    private String organizationId; 
    private Position position; 
    private String category; 
    private String loyalty; 
    private RealmList<Specialization> specializations; 
    private Contacts contacts; 
    private String key; 
.... 
+0

есть ли решение, если формат JSON выглядит следующим образом: [ { "doctorId": «7d8e72d7-809b-4273 -9a3f-fa21718dee7f», "специализации": [ "название Специализация 3" , "Специализация имя 2" , "название Специализация 1" ], "ключ": "firstname0 middlename0 lastname0" } ] У меня есть ответ API, который JSON аналогичен указанному выше. Любая помощь будет значительно оценена, – Rajendra