关于QJsondocument和QJsonObject的问题。
遇到一个比较奇怪的问题,找不到原因,请教下~
贴一小段代码比较清楚:
这种情况下有些时候程序会报segmentation false错,有些时候会有输出,但是输出是错的:
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":""}}}) )
但是当把modulesObj.remove(QString::number(tempItem->moduleID));这句话除去的话,就所有输出都是正常的:
输出:
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":""}}}) )
所以疑惑,为什么执行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;这种情况下有些时候程序会报segmentation false错,有些时候会有输出,但是输出是错的:
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":""}}}) )
但是当把modulesObj.remove(QString::number(tempItem->moduleID));这句话除去的话,就所有输出都是正常的:
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":""}}}) )
所以疑惑,为什么执行remove函数之后会有问题,这里实在想不通,请教一下。
...全文
相关推荐
QT中QSettings的使用系列之四:QSettings与操作QJson(registerFormat())
QT中QSettings的使用系列之四:QSettings与操作QJson(registerFormat())
QT纯C++实现JSON的封装、解析、修改、删除!
QT纯C++实现JSON的封装、解析、修改、删除!
黑马程序员C语言教程CC++培训专家教你快速搞定Qt下的Json文件使用.doc
黑马程序员C语言教程CC++培训专家教你快速搞定Qt下的Json文件使用.doc
QT调用ZMQ,qt调用dll库文件,QT
QT5中调用zeroMQ,使用QJsonDocumentn类,发送json数据
testjson2250.zip
qt4 下使用json 访问网站天气预报数据显示


