web-dev-qa-db-ja.com

QJsonObjectをQStringに変換する方法

QJsonObjectデータがあり、QStringに変換したい。これどうやってするの? Qtでヘルプを検索しましたが、QJsonObjectをQVariantMapに変換することしかできません...

前もって感謝します。

24
gogo000

最初にこれを行う必要があったことを思い出すと、ドキュメントには少し欠けていることがあり、他のQJsonクラスの知識があることを前提としています。

QJsonObjectのQStringを取得するには、次のようにQJsonDocumentクラスを使用する必要があります。-

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

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

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