Мне нужно записать в jsonObject вопросы и ответы Я делаю так:
const Task* task = dynamic_cast<const Task*>(component);
if (task != nullptr)
{
std::unique_ptr<QJsonObject> jsonObject;
jsonObject["classType"] = ClassType::TASK;
jsonObject["question"] = task->question();
jsonObject["answer"] = task->answer();
jsonObject["numPoints"] = task->numPoints();
return jsonObject;
}
Но выдает ошибку:
1) error: C2678: binary '[': no operator found which takes a left-hand
operand of type 'std::unique_ptr<QJsonObject,std::default_delete<_Ty>>' (or
there is no acceptable conversion)
with
[
_Ty=QJsonObject
]
Вы обернули json , объект в unique_ptr, тел, что бы использовать оператор [ ] необходимо достать объект, используете *.
Подводя итог, полное решение, обсуждаемое в комментариях:
#include <QJsonObject>
std::unique_ptr<QJsonObject> obj = std::unique_ptr<QJsonObject>(new QJsonObject);
(*jsonObject)["classType"] = static_cast<int>(ClassType::TASK);
(*jsonObject)["question"] = task->question();
(*jsonObject)["answer"] = task->answer();
(*jsonObject)["numPoints"] = int(task->numPoints());
Необходимо подключить правильный заголовочный файл, перед использованием указателя, инициализировать его. Использовать оператор * для получения объекта и применения к нему оператора [ ], и привести все типы к целым числам, и строкам.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости