Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Max Payne от Март 17, 2014, 12:42



Название: Json в Qt и использование Enginio
Отправлено: Max Payne от Март 17, 2014, 12:42
Доброе время суток,
Пытаюсь разобраться в новшествах Qt, есть сложный объект со следующими полями:
Код:
    qint32 id;
    QByteArray recordData;
    QDate dateOfCreatingRecord;
    QString recordName;
    qint32 clientFk;
    QString payment ; //!TODO! change latter
    QDate dateOfPayment;
    bool isAnswered ; //!TODO! change later
    QString comment;
    DataClassClient *client;

где DataClassClient имеет поля :
Код:
    qint32 id;
    QDate dateOfCreating;
    QString fio;
    int age;
    bool sex;
    QString deviceNumber;
    QString email;
    QString comment;

Задача писать это все в Cloud Backend  и читать от туда. С простыми объектами все нормально все работает, а вот со сложными проблема. Подскажите как правильно писать и читать сложные объекты средствами Qt. Заранее спасибо.


Название: Re: Json в Qt и использование Enginio
Отправлено: carrygun от Март 18, 2014, 04:32
Сериализация/десереализация.


Название: Re: Json в Qt и использование Enginio
Отправлено: Max Payne от Март 18, 2014, 13:35
Довольно лаконично =) Но боюсь просто сериализовать объект не поможет. И на это не сколько причин:
1. Объект включает в себя другой объект и в Enginio Backend это поле настроено как ref (objects), в модели я пытаюсь получить данные из двух таблиц и показать их на одной QTableView. Тут и начинаются все проблемы. Проблема реализации ролей модели + выборку из нескольких таблиц не получается сделать, а примеров пока найти не могу, для двух таблиц =\
2. Добавить новый объект можно через модель, поэтому проще писать объект не в поток а в QJsonDocument из которого получать QJsonObject и добавлять его через модель. Но тут тоже пока не получается записать сложный объект в QJsonDocument - Enginio добавляет в итоге объект с пустыми полями =\