如何将 QVariant 转换为 QJsonValue?

How to convert QVariant to QJsonValue?

如何把QVariant转换成QJsonValue? 我知道 QVariant 提供 toJsonValue 功能,但它没有按预期执行。

例如:

qDebug()<<QVariant(1.0).toJsonValue();
qDebug()<<QVariant("test").toJsonValue();

两个return:

QJsonValue(null)
QJsonValue(null)

预期输出:

QJsonValue(double, 1)
QJsonValue(string, "test")

您可以执行以下操作:

QVariant dblVariant(1.0);
QVariant strVariant("test");

QJsonValue dblJs(dblVariant.toDouble());
QJsonValue strJs(strVariant.toString());

您的方法行不通,因为变体对象应具有用户类型 QJsonValue,但事实并非如此。因此它returns默认构造了QJsonValue对象。

您可以使用此静态函数来:

QJsonValue::fromVariant( myVariant )

查看 this link 了解更多信息。