首页 > 其他分享 >QT5 QJson与QString相互转换

QT5 QJson与QString相互转换

时间:2023-05-08 19:23:38浏览次数:58  
标签:QT5 QByteArray string bytes 博客 QString QJson

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

标签:QT5,QByteArray,string,bytes,博客,QString,QJson
From: https://www.cnblogs.com/littleheadache/p/17382872.html

相关文章

  • pyqt5-快捷键设置
    1、介绍pyqt5中有三种方式可以设置快捷键,所谓快捷键,本质上就是以单个或多个组合键盘按键的方式,触发组件的事件。2、三种方式2.1setShortcut方法"""直接为组件设置快捷键,不区分事件类型,会调用该组件各种事件绑定的所有方法"""self.ui.pushButton_2.setShortcut('A')self.u......
  • pyqt5-文本框搜索功能
    1、介绍作用是对一个文本框组件的文本进行搜索,将搜索结果在文本框中进行字体颜色标记,允许re或者普通文本搜索,支持上一个或下一个的跳转,支持标签显示当前索引和总个数。2、ui3、代码(1)自定义search.py,其中包含两个重要的函数"""搜索算法返回结果是list,元素是二元list,表示......
  • pyqt5-QSplitter
    1、介绍QSplitter类是用于分裂器水平布局或垂直布局,效果是该组件内在水平或垂直方向上的直接子组件,可以用鼠标拖动子组件之间的分界线,以变化各自的宽度或长度。简单来说,就是在水平布局或垂直布局的固定分配上,允许各组件变化尺寸。2、类和初始化classQSplitter(QFrame):快速......
  • pyqt5-颜色
    1、颜色选择器col=QColorDialog.getColor()该行代码可以打开一个子窗口,选择颜色选择后可以点击确认或取消,都是返回一个PyQt5.QtGui.QColor对象,而并不会因为点击取消返回None点击确认时,col.name可以获取一个str类型,比如#7bf8ff,col.value都是int类型255点击取消时,col.name可......
  • Qt5.9学习笔记-事件(一)
    ⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生......
  • pyqt5-右键菜单
    1、介绍pyqt支持两种类型的菜单,窗口的菜单和右键菜单。这里阐述右键菜单的使用。2、右键触发fromPyQt5.QtCoreimportQtself.ui.plainTextEdit:QPlainTextEditself.ui.plainTextEdit.setContextMenuPolicy(Qt.CustomContextMenu)self.ui.plainTextEdit.customContextMen......
  • pyqt5-QListWidget
    1、介绍list组件,或者说列表组件。2、类和初始化classQListWidget(QListView):快速查询:QListWidget(parent:typing.Optional[QWidget]=None)addItem(self,aitem:QListWidgetItem)addItem(self,label:str)addItems(self,labels:Iterable[str])clear(self)closeP......
  • Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库
    前言  mysql驱动版本msvc2015x32版本调好,mysql的mingw32版本的驱动上一个版本编译并测试好,有些三方库最低支持vs2017,所以只能使用msvc2017x64,基于Qt5.9.3,于是本篇编译mysql驱动的msvc2017x64版本,满足当前的特定需求,这次过程有点费劲,可能是Qt的版本低于Qt5.12,继续无保留分享......
  • Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程
    移植QT5教程(此教程基于docker版V851S开发环境)dockerpullregistry.cn-hangzhou.aliyuncs.com/gloomyghost/yuzukilizard编译依赖apt-getinstallrepogitgcc-arm-linux-gnueabihfu-boot-toolsdevice-tree-compilermtools\partedlibudev-devlibusb-1.0-0-devpython......
  • Qt5.12实战之图形编程初识
    演示效果: 1.绘制条件:1.绘图设备-> QPainter2.画笔->QPen --->字体(QFont)3.画刷->QBrush-->自己定义画刷(QPixmap)4.绘制事件->QPaintEvent绘图步骤:1.重写基类的虚函数 voidpaintEvent(QPaintEvent*event); 2.在虚函数 voidpaintEvent(QPaintEvent*event)的实现函......