qt - Cómo convertir un QJsonObject a QString
(2)
Tengo datos de QJsonObject y quiero convertir a QString. ¿Cómo puedo hacer esto? Buscó ayuda en Qt, solo puede convertir QJsonObject a QVariantMap ...
Gracias por adelantado.
Cuando la macro QT_NO_CAST_FROM_ASCII
está habilitada, puedes hacer algo como:
QJsonDocument doc(jsonObject);
QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
Qstring strJson = codec->toUnicode(docByteArray);
O mejor, solo use QLatin1String(QByteArray&)
, basado en el ejemplo de TheDarkKnight :
QJsonDocument doc(jsonObj);
QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
Qstring strJson = QLatin1String(docByteArray);
Recordando la primera vez que tuve que hacer esto, la documentación puede faltar un poco y se supone que tienes conocimiento de otras clases de QJson.
Para obtener una QString de un QJsonObject, necesita usar la clase QJsonDocument, como esto:
QJsonObject jsonObj; // assume this has been populated with Json data
QJsonDocument doc(jsonObj);
QString strJson(doc.toJson(QJsonDocument::Compact));