如何将 QJsonObject 转换为 QString

问题描述 投票:0回答:4

我有一个 QJsonObject 数据,想要转换为 QString。我怎样才能做到这一点?在Qt中搜索了帮助,它只能将QJsonObject转换为QVariantMap...

提前致谢。

qt qstring qjsonobject
4个回答
105
投票

记得当我第一次需要这样做时,文档可能有点缺乏,并且假设您了解其他 QJson 类。

要获取 QJsonObject 的 QString,您需要使用 QJsonDocument 类,如下所示:-

QJsonObject jsonObj; // assume this has been populated with Json data

QJsonDocument doc(jsonObj);
QString strJson(doc.toJson(QJsonDocument::Compact));

6
投票

我们可以用一行完成此操作

QString strFromObj = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact).toStdString().c_str();

0
投票

当宏

QT_NO_CAST_FROM_ASCII
启用时,您可以执行以下操作:

QJsonDocument doc(jsonObject);
QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
Qstring strJson = codec->toUnicode(docByteArray);

或者更好,只需使用

QLatin1String(QByteArray&)
,基于 TheDarkKnight 的示例:

QJsonDocument doc(jsonObj);
QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
Qstring strJson = QLatin1String(docByteArray);

0
投票

或者

QJsonDocument 文档; ... doc.toVariant().toString();

© www.soinside.com 2019 - 2024. All rights reserved.