Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция которая должна с json формата считывать 
:(
    Опции темы
dimaSlon
Дата 8.6.2018, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 25.6.2017

Репутация: нет
Всего: нет



Я написал функцию которая должна считывать  с json формата 
Код

std::unique_ptr<Component> Archiver::deserialise(const QJsonObject& jsonData)
{
    Test test;
    if (jsonData["classType"].operator==( ClassType::TEST))
    {
        test.setName(jsonData["name"].toString());
        for (decltype(jsonData.size()) childIndex = 0; childIndex < jsonData.size(); ++childIndex)
        {
            std::unique_ptr<Component> childComponent = deserialise(jsonData["children"]);
            test.addChild(childComponent);
        }
        std::unique_ptr<Test> component;
        component.operator =(test);
        return component;
    }
    return nullptr;
}

Но я столкнулся с  проблемами и ошибками. Нужна ваша помощь
Ошибки:
1)
Код

std::unique_ptr<Component> childComponent = deserialise(jsonData["children"]);

ошибка :  'std::unique_ptr<Component,std::default_delete<_Ty>> Archiver::deserialise(const QJsonObject &)': cannot convert argument 1 from 'QJsonValue' to 'const QJsonObject &'
2)
Код

component.operator =(test);

ошибка: error: C2664: 'std::unique_ptr<Test,std::default_delete<_Ty>> &std::unique_ptr<_Ty,std::default_delete<_Ty>>::operator =(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': cannot convert argument 1 from 'Test' to 'std::nullptr_t'


Это сообщение отредактировал(а) dimaSlon - 8.6.2018, 07:55
PM MAIL   Вверх
ss
Дата 8.6.2018, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



строка 4
Цитата

if (jsonData["classType"].operator==( ClassType::TEST))


if(ClassType(jsonData.value("classType").toInt()) == ClassType::TEST)


строка 9 . jsonData["children"].toObject().   указать тип 

строка 12
Цитата

std::unique_ptr<Test> component;
        component.operator =(test);


std::unique_ptr<Test> component(new Test());

!Скорее всего component уничтожит Test т.к. component уничтожится сам. Возвращать можно new Test();

Это сообщение отредактировал(а) ss - 8.6.2018, 19:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1010 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.