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));
マクロ_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);
_