如何将 QJsonObject 转换为 QString

How to convert a QJsonObject to QString

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

提前致谢。

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

要获取QJsonObject的QString,需要使用QJsonDocumentclass,像这样:-

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

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

启用宏 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&),基于 的示例:

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

我们可以在一行中做到这一点

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