Вставка QJsonObject: ошибка после удаления ()

Когда я использую QJsonObject.insert() и передать QJsonObject (который вызывает remove () раньше) в качестве параметра, он не работает хорошо. Я думаю, что более понятно, чтобы опубликовать код здесь:

QJsonObject mainObj = myProJsonDoc.object();
QJsonObject modulesObj = mainObj.take(QLatin1String("modules")).toObject();
modulesObj.remove(QString::number(tempItem->moduleID));
qDebug()<<modulesObj;
qDebug()<<mainObj;
mainObj.insert(QLatin1String("modules"),modulesObj);
qDebug()<<mainObj<<(QJsonValue)modulesObj;

Таким образом, вывод будет неправильным:

QJsonObject({"0":{"info":"balabala..","input":{"0":""},"name":"test1","output":{"0":""}}})
QJsonObject({})
QJsonObject({"modules":{"":null}}) QJsonValue(object, QJsonObject({"0":{"info":"balabala..","input":{"0":""},"name":"test1","output":{"0":""}}}) )

и если я удалю строку, используйте remove ():

QJsonObject mainObj = myProJsonDoc.object();
QJsonObject modulesObj = mainObj.take(QLatin1String("modules")).toObject();
//modulesObj.remove(QString::number(tempItem->moduleID));
qDebug()<<modulesObj;
qDebug()<<mainObj;
mainObj.insert(QLatin1String("modules"),modulesObj);
qDebug()<<mainObj<<(QJsonValue)modulesObj;

на этот раз все прошло хорошо

QJsonObject({"0":{"info":"balabala..","input":{"0":""},"name":"test1","output":{"0":""}},"1":{"info":"balabala..","input":{"0":""},"name":"","output":{"0":""}}})
QJsonObject({})
QJsonObject({"modules":{"0":{"info":"balabala..","input":{"0":""},"name":"test1","output":{"0":""}},"1":{"info":"balabala..","input":{"0":""},"name":"","output":{"0":""}}}}) QJsonValue(object, QJsonObject({"0":{"info":"balabala..","input":{"0":""},"name":"test1","output":{"0":""}},"1":{"info":"balabala..","input":{"0":""},"name":"","output":{"0":""}}}) )

У тебя есть идеи почему?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]