How to convert a QJsonObject to QString

后端 未结 3 2000
说谎
说谎 2020-12-25 12:38

I have a QJsonObject data and want to convert to QString. How can I do this? Searched for help in Qt, it only can convert QJsonObject to QVariantMap...

Thanks in adv

相关标签:
3条回答
  • 2020-12-25 13:01

    When the macro QT_NO_CAST_FROM_ASCII is enabled, you can do something like:

    QJsonDocument doc(jsonObject);
    QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    Qstring strJson = codec->toUnicode(docByteArray);
    

    Or better, just use QLatin1String(QByteArray&), based on the example of TheDarkKnight:

    QJsonDocument doc(jsonObj);
    QByteArray docByteArray = doc.toJson(QJsonDocument::Compact);
    Qstring strJson = QLatin1String(docByteArray);
    
    0 讨论(0)
  • 2020-12-25 13:02

    Remembering when I first needed to do this, the documentation can be a bit lacking and assumes you have knowledge of other QJson classes.

    To obtain a QString of a QJsonObject, you need to use the QJsonDocument class, like this: -

    QJsonObject jsonObj; // assume this has been populated with Json data
    
    QJsonDocument doc(jsonObj);
    QString strJson(doc.toJson(QJsonDocument::Compact));
    
    0 讨论(0)
  • 2020-12-25 13:15

    we can do this in one line

    QString strFromObj = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact).toStdString().c_str();
    
    0 讨论(0)
提交回复
热议问题