QT5 QJson与QString相互转换

发布时间 2023-05-08 19:13:41作者: 小头痛

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博客