利用QDebug类将一个数据类型(QMap,QList等)转换为字符串。
由于我们使用qDebug打印数据,好像什么数据都能打印到屏幕,由此我们可以利用QDebug类输出重定向到QString中,从而实现数据的字符串序列化。
QDebug::QDebug(QString *string)
QString toString(QVariant var)
{
QString string;
QDebug(&string) << var;
return string;
}
template<typename T>
QString toString(T t)
{
QString string;
QDebug(&string) << t;
return string;
}
QVariantMap map = {
{"1", 2},
{"3", 4},
};
qDebug() << toString(map);
QStringList list = {"1", "2", "3"};
qDebug() << toString(list);
"QVariant(QVariantMap, QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4)))) "
"QVariant(QStringList, (\"1\", \"2\", \"3\")) "
"QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4))) "
"(\"1\", \"2\", \"3\") "