QT5 QJson与QString相互转换
QT5 QJson与QString相互转换
QString转QJson
QJsonObject MainWindow::QstringToJson(QString jsonString) { QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toLocal8Bit().data()); if(jsonDocument.isNull()) { qDebug()<< "String NULL"<< jsonString.toLocal8Bit().data(); } QJsonObject jsonObject = jsonDocument.object(); return jsonObject; }
如果QString里有中文,jsonString.toLocal8Bit().data() 改成 jsonString.toUtf8()
jsonString.toUtf8()是QString转QBytearray
参考:1.QT5 QJson与QString相互转换_qt qstring qjson_必须得开心呀的博客-CSDN博客
这个QJson转QString方法不太一样
2. QT5中Json文件与QString的相互转化_qt json转qstring_fufuhong的博客-CSDN博客
QString、Qbytearray、string的相互转换及相关问题
// QString转QByteArray方法
//Qt5.3.2 QString str("hello"); QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1 QString str("hello"); QByteArray bytes = str.toLatin1(); // QString转QByteArray方法2
//QByteArray转QString方法
//Qt5.3.2 QByteArray bytes("hello world"); QString string = bytes; // QByteArray转QString方法1 QByteArray bytes("hello world"); QString string; string.prepend(bytes);// QByteArray转QString方法2 qDebug() << string;
QByteArray类同样不以’\0’为结尾:如
QByteArray bytes; bytes.resize(5); bytes[0] = '1'; bytes[1] = '2'; bytes[2] = '3'; bytes[3] = '\0'; bytes[4] = 'a'; cout << bytes << endl;
参考:1. QString与QByteArray互相转换的方法_qstring转qbytearray_daa20的博客-CSDN博客
2. QString、Qbytearray、string的相互转换及相关问题_HelloEarth_的博客-CSDN博客