如何将QJsonObject转换为QString

时间:2015-01-27 22:59:15

标签: qt qstring qjsonobject

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

提前致谢。

3 个答案:

答案 0 :(得分:52)

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

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

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

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

答案 1 :(得分:1)

我们可以一行完成

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

答案 2 :(得分: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);

或更妙的是,根据TheDarkKnight的示例,只需使用QLatin1String(QByteArray&)

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