我有一个QJsonObject数据,想要转换成QString。我该如何做?在Qt中寻找帮助,它只能将QJsonObject转换为QVariantMap...提前感谢。
记得当我第一次需要做这件事时,文档可能有点不足,并且假设你有其他QJson类的知识。
要获取QJsonObject的QString,您需要使用QJsonDocument类,像这样:-
QJsonObject jsonObj; // assume this has been populated with Json data
QJsonDocument doc(jsonObj);
QString strJson(doc.toJson(QJsonDocument::Compact));
QJsonDocument::toJson()
返回一个UTF-8格式的QByteArray
。 - marcbfQString strFromObj = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact).toStdString().c_str();
QString strFromObj = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact);
或者 - AnonymouseQT_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);