从Qvariant转换时QJsonDocument是否为null


#include "QtCore"
#include "QMap"
#include "qdebug.h"
#include "qjsondocument.h"

class cclass{
public:
int var;
};
Q_DECLARE_METATYPE(cclass);

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cclass object1;
object1.var=40;
QVariant variant= QVariant::fromValue(object1);

QVariantMap map;
map.insert("variant",variant);

QJsonDocument document=  QJsonDocument::fromVariant(map);
qDebug()<<document;
return a.exec();
}

qdebug返回QJsonDocument({"variant":null})我认为它应该返回object1的值,但它返回null。为什么?我想使用qt将字符串和json中的一个类配对。我如何才能做到

因为QVariant处理自定义类型的方式。

从Qt文档中,Note: If you are working with custom types, you should use the Q_DECLARE_METATYPE() macro to register your custom type.

换句话说,QVariant::fromValue((不知道如何处理cclass类型,只需创建一个空的QVariant,然后在QJsonDocument中进行相应的序列化。

最新更新