Realm.IO. Можно ли анализировать массив JSON с помощью createOrUpdateAllFromJson?

Внутри класса Доктор у меня есть RealmList - specializationList.

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 из объекта doctor:

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

Но размер списка специализации равен 0.

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

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


person Joe Rakhimov    schedule 14.05.2015    source источник


Ответы (1)


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

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

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;
....
person Christian Melchior    schedule 17.05.2015
comment
есть ли решение, если формат JSON выглядит следующим образом: [ { DoctorId: 7d8e72d7-809b-4273-9a3f-fa21718dee7f, specializations: [Название специализации 3 , Название специализации 2 , Название специализации 1 ], key: firstname0 middlename0 lastname0 } ] I иметь ответ API, аналогичный JSON, как указано выше. Любая помощь будет принята с благодарностью, - person Rajendra; 06.06.2017