Qt QJson组装数据Sig传递

有时候界面输入的值,不想创建结构体,那么直接用QString类型传输,更便捷方便,速度更快

QJson是你选择的一种方式

组合:

cpp 复制代码
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建JSON对象
    QJsonObject jsonObject;
    jsonObject["name"] = "John Doe";
    jsonObject["age"] = 30;

    // 创建JSON数组
    QJsonArray jsonArray;
    jsonArray.append("apple");
    jsonArray.append("banana");
    jsonArray.append("cherry");

    // 将数组添加到对象中
    jsonObject["fruits"] = jsonArray;

    // 创建JSON文档
    QJsonDocument jsonDoc(jsonObject);

    // 将JSON文档转换为字符串
    QString jsonString = jsonDoc.toJson(QJsonDocument::Indented);
    qDebug() << "JSON Data:" << jsonString;

    return a.exec();
}

解析:

cpp 复制代码
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // JSON字符串
    QString jsonString = R"(
    {
        "name": "John Doe",
        "age": 30,
        "fruits": ["apple", "banana", "cherry"]
    })";

    // 将JSON字符串解析为JSON文档
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());

    // 检查解析是否成功
    if (jsonDoc.isNull() || !jsonDoc.isObject()) {
        qWarning() << "Failed to parse JSON";
        return -1;
    }

    // 获取JSON对象
    QJsonObject jsonObject = jsonDoc.object();

    // 访问数据
    QString name = jsonObject["name"].toString();
    int age = jsonObject["age"].toInt();
    QJsonArray fruitsArray = jsonObject["fruits"].toArray();

    qDebug() << "Name:" << name;
    qDebug() << "Age:" << age;
    qDebug() << "Fruits:";

    for (const QJsonValue &value : fruitsArray) {
        qDebug() << " -" << value.toString();
    }

    return a.exec();
}

AI生成,提供思路

相关推荐
KuaCpp15 分钟前
C++面向对象(速过复习版)
开发语言·c++
智者知已应修善业3 小时前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
AI进化营-智能译站4 小时前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
报错小能手4 小时前
好好讲讲移动构造 移动赋值
c++
syker4 小时前
AIFerric深度学习框架:自研全栈AI基础设施的技术全景
开发语言·c++
xvhao20135 小时前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
笑鸿的学习笔记6 小时前
qt-C++语法笔记之Qt Graphics View 框架中的类型辨析完全指南
c++·笔记·qt
山居秋暝LS6 小时前
安装C++版opencv和opencv_contrib
开发语言·c++·opencv
谭欣辰7 小时前
LCS(最长公共子序列)详解
开发语言·c++·算法
Cando学算法7 小时前
鸽笼原理(抽屉原理)
c++·算法·学习方法